算数运算符、逻辑运算符、比较运算符

1、算术运算符:+、-、*、/、%、++、–

 1)+

    var a = 1 + 2;        // 3  

   

    var b = true + 2;        // 3 

    var c = false + 2;        // 2 

 

    var d = null + 2;         // 2 

    

    var e = undefined + 2;      // NaN 

 

    var g = NaN + 2;        // NaN

 

    字符串加任何值结果都是字符串

    var f = ‘1’ + 2;          // ’12’ 

    var h = undefined + ‘2’     // ‘undefined2’

    

    如果加号两边都引用类型的数据时,会调用引用类型的toString方法

    var i = undefined + [1,2,3]                  // ‘undefined1,2,3’

    var j = undefined + {age: 18}              // ‘undefined[object Object]’

    var k = undefined + function fn( ){ }  // ‘undefinedfunction fn(){}’

 (2)-、*、/、%

    使用-、*、/、%运算符计算的时候,会先将运算符两边的数据进行Number( )转换

      var a = 4 – 2;     // 2

    var b = ‘5’ – 4;   // 1

    var c = 3 – true;   // 2

    var d = 3 – null;   // 3

    var e = 3 – undefined;// NaN

 (3)++、–

    ++(–)在前,先++(–)再运算或赋值;++(–)在后,先运算或赋值再++(–)

    var b = 1;

    var a = b ++;

    console.log(a)  // 1

 

    var b = 1;

    var c = ++ b;

    console.log(c)  // 2

 

    var b = 1;

    var d = b ++ + ++ b;

    console.log(d)  // 4

 

    var b = 1;

    var e = b ++ + ‘x’

    console.log(e)  // ‘1x’

 

    var b = 1;

    var f = ++ b + ‘y’

    console.log(f)  // ‘2y’

 (4)正负号:+、-

    使用正负号计算的时候,会先将正负号后面的数据进行Number( )转换,再进行计算

    var a = + ‘1’ + 1

    console.log(a)  // 2

 

    var b = – ‘3’ + 5

    console.log(b)  // 2

 

 

2、逻辑运算符:||、&&、!

 (1)&&

    先看第一个表达式转成布尔值的结果,如果结果为假,那么直接返回第一个表达式的值;如果第一个表达式的结果为真,且当前只有两个表达式,那么返回第二个表达式的值 

    let  a  =  1  &&  2;

    console.log( a )  // 2

 

    let  b  =  1  &&  2  &&  3;

    console.log( b )  // 3

 

    let  c  =  0  &&  2;

    console.log( c )  // 0

 

    let  d  =  1  &&  false  &&  2;

    console.log( d )  // false

 

 (2)||

    先看第一个表达式转成布尔值的结果,如果结果为真,那么直接返回第一个表达式的值;如果第一个表达式的结果为假,且当前只有两个表达式,那么返回第二个表达式的值

    let  a  =  1  ||  2;

    console.log( a )  // 1

 

    let  b  =  1  ||  2  ||  3;

    console.log( b )  // 1

 

    let  c  =  0  ||  2;

    console.log( c )  // 2

 

    let  d  =  1  ||  false  ||  2;

    console.log( d )  // 1

 

 (3)!

    结果是布尔值,undefined,null,NaN,””,0,false转成布尔值是false,其它都为true

    let  a  =  ! 123;

    console.log( a )  // false

 

    let  b  =  ! 0;

    console.log( a )  // true

 

3、比较运算符:>、<、==、>=、<=、===、!=、!==

  结果是布尔值

  undefined > 0    // false

  undefined < 0    // false

  undefined == 0    // false

  null > 0         // false

  null < 0         // false

  null == 0       // false

  undefined == null    // true

  2 > ‘3’           // false

  2 < ‘3’        // true

  2 == ‘2’          // true

  2 === ‘2’         // false

  

 

版权声明:本文为cuishuangshuang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/cuishuangshuang/p/13051338.html