[2016-02-09][javascript][表达式与运算符]

[2016-02-09][javascript][表达式与运算符]

  • 算术运算符 + - * / % ++ --
    • ++ -- 运算和C++的类似,也有前缀和后缀形式
      • 不过,javascript中浮点类型等也支持++ --运算,效果 就是自增(减) 1,
        • bool 类型,++ -- 运算完之和,变量变成 number
        • 非数值类型,实际上就是先隐式转换成 数值类型,在进行自增自减运算
      • 注意:后缀++,在自增之前,类型已经转换
      • 1
        2
        3
        4
        var  b =  true ;
        document.write( "</br>" );
        document.write( typeof  b++);
        //输出的是number!!!


  • 字符连接符 +
    • 凡是表达式中,有一个字符串,全部隐式转换成字符串,然后进行拼接
    • document.write(true + "23333");
      • true23333
    • 注意:document.write(666 + true + "23333");
      • 这里先运算 666 + true  ,在拼接,所以:66723333
      • 因为代码的执行顺序是:左→右
    • 为了避免上面的情况,可以在开头加上空字符串
      • document.write('' + 666 + true + "23333");
        • 666true23333false

  • 赋值运算符 = += -= %= /= *=
    • += 对于字符串为字符拼接符,对于其他的则是 加法运算
    • 其他赋值,如*=等,则是四则运算,即先转换成数值类型,在进行运算

  • 比较运算符,> < >= <= == != === !==
    • == 和 ===
    • ==比较的是值,===比较值和类型
      • 转换成相同类型进行值的比较,(嗯,优先转换成哪个类型呢?)
    • 注意: 
      • 0 == null;//值为false
      • NaN == NaN;//false (NaN是唯一一个不能和自身比较的)

  • 逻辑运算符 && ||  !(与,或,非)
    • 短路现象(和C++的情况一样)
      • 如,0 && i++ ;这句中,i++后面这句没有执行

  • 三元运算符 exp1?exp2:exp3;

  • 逗号运算符',',值为最后一个表达式的值
  • void运算符,指定表示式,没有返回结果
    • 1
      2
      var  a = (b = 1,c = 2); //a -> 2
      c = void(b = 1,c = 2); //c -> undefined








来自为知笔记(Wiz)


你可能感兴趣的:([2016-02-09][javascript][表达式与运算符])