Javascript——运算符

  • 四则运算符:+ - * / %(取余) **(取幂)
    • 不同数据类型的之间无法直接进行算术运算,需要自动进行类型转换
    • 类型转换规则
      1. 字符串 + 其他数据类型,不是加法运算,而是变成字符串拼接
      2. 字符串 与 其他数据类型进行 + 以外的运算,字符串会将自己转为数值类型:
        • 字符串为纯数字时,直接转为数字
        • 字符串包含字符与数字,转为NaN
        • NaN与任何类型运算都是NaN
      3. 纯数字字符串转换为数值类型的方法:变量*1、变量-0、变量/1
    • 注意点:JavaScript 在计算小数时,会有误差;除数可为0,结果为 Infinity 或 -Infinity
  • 赋值运算符:= 复合: += -= *= /= %=
    • 将等号右边的值 赋给 等号左边的变量
    • 复合符号表示:a+=b 等价于 a = a + b
  • 一元运算符:++ --
    • 前置:变量先自增(自减)再使用
    • 后置:变量先使用再自增(自减)
  • 关系运算符:> < >= <= == != === !==
    • ==、!= 与 ===、!== 之间的区别:
      • ==、!= 只比较两个变量的值,===、!== 比较两个变量的数据类型和值
    • 比较规则:
      • 两边都为数值类型时直接进行比较
      • 两边都为字符串类型时对逐个字符ASCII码值进行比较
      • 其中一个为数值,另一个转为数值后比较
    • 【Javascript——运算符】==与!=的比较规则:
      • 其中一个为布尔值,将其转为数值后比较
      • 其中一个为字符串,将其转为数值后比较
      • 其中一个为NaN,==返回false,!=返回true,NaN与NaN也不相等
  • 逻辑运算符:&& || !
    • 与运算(&&):全为true时,结果为true,遇到为false时,后面的不执行
    • 或运算(||):全为false时,结果为false,遇到true,后面的不执行
    • 非运算(!):将数据取反
      • 空字符取反:true
      • 非空字符取反:false
      • 0 取反:true
      • 非0 取反:false
      • NaN取反:true
      • undefined取反:true
  • 三目运算符:表达式1 ? 表达式2 : 表达式3
    • 表达式1成立,执行表达式2;表达式1不成立,执行表达式3
  • 展开、合并运算符:...
    • 函数实参位置或数组或对象里使用时作为展开运算符
    • 函数形参位置使用时作为展开运算符

    推荐阅读