运算符

作者: 沧桑月 | 来源:发表于2016-11-30 13:48 被阅读0次

    加法 +

    1、算术加法
    2、字符串连接

    a + b.png

    减乘除 - * /

    都是数值运算,所有运算子都转为数值,转不成结果就是NaN。

    比较 > >= < <=

    原始值,对象都是比较值


    a b.png

    相等 == !=

    原始值比较值,对象之间比较地址

    a == b.png

    严格相等 === !==

    a === b.png

    与 &&

    a && b
    如果a为true,返回b的值,而不是布尔值
    如果a为false,直接返回a的值

    var x = 1;
    (x -= 1) && (x += 2) // 0
    x // 0
    
    x = 1
    (x += 1) && (x -= 2) // 0
    x // 0
    
    

    或 ||

    a || b
    如果a判定为true,则直接返回a的值
    如果a判定为false,则返回b的值

    位运算 & | ~ ^ << >> >>>

    只对整数起作用。

    不是整数则自动转为32位整数。
    自动规则:
    number, string, boolean -> number or NaN
    object - valueOf - toString - number

    NaN进行位运算的结果:

    NaN | a   // a
    NaN & a   // 0
    NaN ^ a   // a
    ~NaN  // -1
    ~~NaN // 0
    NaN << a  // 0
    NaN >> a  // 0
    NaN >>> a // 0
    

    表达式:

    i = i | 0
    

    功能:将任意的数据转换成32位的整数。

    否运算:

    ~ 3 // -4
    ~ -3 // 2
    ~a = b, 且 [a]取整 + b = -1
    

    表达式:

    ~~a
    

    功能:将任意的数据转换成32位的整数。最快。

    表达式:

    10..toString(2)  // "1010"
    (-10).toString(2)  // "-1010"
    (-10>>>0).toString(2) // "11111111111111111111111111110110"
    

    功能:查看负数数值二进制表示

    相关文章

      网友评论

          本文标题:运算符

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