js运算符

1、运算操作符

  "+"

    (1)数学运算、连接字符串

    (2)任何数据类型加字符串都等于字符串

  “++”

    var  a  =  10;

    var  b  =  ++a  -  1  + a++;

    console.log(b)  // 21

    console.log(a)  // 12

  "+="

    var  a  =  10;

    a  +=  10  *  2;

    console.log(a)  // 30

2、比较运算符

  >、<、==、>=、<=、!=

  比较的结果是布尔值,真为true,假为false

  "10"  >  "8"  // false

  字符串比较的是asc码的顺序

3、逻辑运算符

  undefined、nul、NaN、""、0、false转换成布尔值是false

  (1)&&

    var  a  =  1  &&  2;  // 2

    var  b  =  0  &&  2;  // 0

    var  c  =  1  &&  2  &&  3;  // 3

    var  d  =  1  &&  null  &&  4;  // null

    先看第一个表达式转换成布尔值的结果,如果为false,就返回第一个表达式的值;如果为true,就会看下一个表达式是否是最后一个表达式;如果是最后一个表达式,就返回这个表达式的值;如果不是最后一个表达式,就判断这个表达式转换成布尔值的结果,如果为false,就返回这个表达式的值;如果为true,就会看下一个表达式是否是最后一个表达式;如果是最后一个表达式,就返回最后这个表达式的值;如果不是最后一个表达式,就判断这个表达式转换成布尔值的结果,以此类推

  (2)||

    var  a  =  1  ||  2;  // 1

    var  b  =  0  ||  2;  // 2

    var  c  =  1  ||  2  &&  3;  // 1

    var  d  =  1  ||  null  &&  4;  // 1

    先看第一个表达式转换成布尔值的结果,如果为true,就返回第一个表达式的值;如果为false,就会看下一个表达式是否是最后一个表达式;如果是最后一个表达式,就返回这个表达式的值;如果不是最后一个表达式,就判断这个表达式转换成布尔值的结果,如果为true,就返回这个表达式的值;如果为false,就会看下一个表达式是否是最后一个表达式;如果是最后一个表达式,就返回最后这个表达式的值;如果不是最后一个表达式,就判断这个表达式转换成布尔值的结果,以此类推

  (3)!

    var  a  =  !123;

    将表达式转换成表达式再取反

原文地址:https://www.cnblogs.com/cuishuangshuang/p/13222660.html