JS的字符串和运算符的运算、null、undefined

1、字符串和运算符的运算

    var a = 1 + "2" + "2";
    console.log(a); // 122
    console.log(typeof a);  // 返回string 属于加号拼接

    var b = + 1 + "2" + "2";
    console.log(b); // 122
    console.log(typeof b); // 返回string 分析:属于加号拼接 +1和1一样

    var c = "2" > 1;
    console.log(c); // true
    console.log(typeof c); // boolean  分析 > 将字符串2转换为数字,然后比较,返回布尔值

    var d = 1 + +"2" + "2";
    console.log(d); // 32
    console.log(typeof d); // string 分析:1 + +"2" 后一个+号为正号,这时和为3(number),然后拼接2(string)  结果 32

    var e = 1 +- "2" + "2"
    console.log(e); // -12
    console.log(typeof e); // string 分析:1 +- "2" -号为负号  结果 -12

    var f = "A" + "B" + "2";
    console.log(f) // AB2
    console.log(typeof f); // string 分析:+号的隐式转化

    var g = "A" - "B" + "2";
    console.log(g); // NaN2 
    console.log(typeof g); // string 分析:"A" - "B" 为NaN,然后+拼接为字符串

    var h = "A" - "B" + 2;
    console.log(h); // NaN  
    console.log(typeof h); // number "A" - "B" 为NaN,然后加上一个 数字2,仍然为number

2、&& 和 || 的运算

    console.log(1 && 2 && 3 && 4); // 全部为真——打印输入最后一个真——4

    console.log(1 && 0 && false && 4); // 部分为假——打印输入第一个假——0

    console.log(1 && false && 0 && 4); // 部分为假——打印输入第一个假——false

    console.log(1 || 2 || 3 || 4); // 若有真,则输出第一个真——1

    console.log(5 || 0 || false || 4); // 若有真,则输出第一个真——5

    console.log( 0 || false || 0 || !0); // 若有真,则输出第一个真——true(隐式转为布尔值)

总结:

 && 运算时,若全是真,则返回最后一个真;若有假,返回第一个假

 || 运算时,若有真,返回第一个真

3、null 和 undefined

        console.log(typeof null);  //? object
        // 在JavaScript中null值表示一个空对象指针,而这也是使用typeof 操作检测null返回object的原因
        // 经常设置为 null 来清空对象..


        console.log(typeof undefined);  //? undefined
        // undefined 是一个没有设置值的变量。typeof一个没有值的变量会返回 undefined。


        console.log(typeof NaN); //? number
        // Not a number,代表一个非数值.但是它本身任然是一个number类型的数字


        console.log(null == undefined);  //? true
        console.log(null === undefined); //? false
        // null 和 undefined 的值相等,但类型不等;
        


        console.log(NaN == undefined); //? false
        // undefined 表示未定义的变量 NaN 就是不是数字的任意值.

        var A = 'A' - 0;
        var B = 'B' - 0;
        console.log(A); // NaN
        console.log(B); // NaN
        console.log(A == B); // false
        console.log(NaN == NaN); // false
        // 因为NaN 是:Not a number 不是一个数字的缩写既然不是一个数字 
        // NaN 可以看做不是数字的任意值,但不是确切的某一个值.
   

猜你喜欢

转载自www.cnblogs.com/houfee/p/9326625.html
今日推荐