美文网首页
2018-09-05 js基础

2018-09-05 js基础

作者: Simon_s | 来源:发表于2018-09-05 17:16 被阅读2次

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    </body>
    <script type="text/javascript">
    //内置类型
    //基本数据类型 null undefined boolean string symbol
    console.log(typeof(null))
    // null 虽然属于基本类型 比较特殊 它的类型为object 这是一个残留很久的bug
    console.log(typeof(NaN))
    //number 类型 NaN不等一自身

        //判断一个变量的正确类型    这样我们就可以获得类似  [object Type] 的字符串。
        console.log(Object.prototype.toString.call(null)) 
        console.log(Object.prototype.toString.call(NaN))
        
        //类型转换
        //转 boolean
        //条件判断除了  null 0 -0  false  undefined '' NaN     其他的值都将转为 true  包括所有对象
        
        //对象转基本类型
        //先调用  valueOf()  在 调用 toString()    这两个方法是可以重写的
        //eg
        let a = {
            
            valueOf() {
                return 0;
            },
            toString() {
                return '1';
            },
            [Symbol.toPrimitive]() {
                return 2
            }
        }
        
         console.log( 1 + a);
         console.log('1' + a )
         
         
         //四则运算符
         ////只有当加法运算时,其中一方是字符串类型,就会把另一个也转为字符串类型。
         ////其他运算只要其中一方是数字,那么另一方就转为数字。
         ////并且加法运算会触发三种类型转换:将值转换为原始值,转换为数字,转换为字符串。
         
         1 + '1' // '11'
         2 * '2' // 4
         [1, 2] + [2, 1] // '1,22,1'
         // [1, 2].toString() -> '1,2'
         // [2, 1].toString() -> '2,1'
         // '1,2' + '2,1' = '1,22,1'
         
         
         
    </script>
    

    </html>

    相关文章

      网友评论

          本文标题:2018-09-05 js基础

          本文链接:https://www.haomeiwen.com/subject/gptzwftx.html