1.算术运算符

  • 加法运算符:x + y
  • 减法运算符:x - y
  • 乘法运算符: x * y
  • 除法运算符:x / y
  • 指数运算符:x ** y
  • 余数运算符:x % y
  • 自增运算符:++x或者x++
  • 自减运算符:--x或者x--
  • 数值运算符: +x
  • 负数值运算符:-x

    1.1加法运算符

    加法运算符(+)是最常见的运算符,用来求两个数值的和
    1. 1 + 1 // 2
    JavaScript 允许非数值的相加
    1. true + true // 2
    2. 1 + true // 2
    上面代码中,第一行是两个布尔值相加,第二行是数值与布尔值相加。这两种情况,布尔值都会自动转成数值,然后再相加
    比较特殊的是,如果是两个字符串相加,这时加法运算符会变成连接运算符,返回一个新的字符串,将两个原字符串连接在一起
    1. 'a' + 'bc' // "abc"
    2. 1 + 'a' // "1a"
    加法运算符是在运行时决定,到底是执行相加,还是执行连接。也就是说,运算子的不同,导致了不同的语法行为,这种现象称为“重载”(overload)。由于加法运算符存在重载,可能执行两种运算,使用的时候必须很小心
    1. '3' + 4 + 5
    2. 3 + 4 + '5'
    除了加法运算符,其他算术运算符(比如减法、除法和乘法)都不会发生重载。它们的规则是:所有运算子一律转为数值,再进行相应的数学运算
    1. 1 - '2' // -1
    2. 1 * '2' // 2
    3. 1 / '2' // 0.5

    2.比较运算符

    >大于运算符
    <小于运算符
    <= 小于或等于运算符
    >= 大于或等于运算符
    == 相等运算符
    === 严格相等运算符
    != 不相等运算符
    !==严格不相等运算符
    运算符比较的规则:NaN进行任何比较均返回false,在同为字符串时进行字典比较,否则通过隐式转换成数值类型进行比较

    3.布尔运算符

    ● 取反运算符:!
    ● 且运算符:&&
    ● 或运算符:||
    ● 三元运算符:?:

    4.二进制运算符

    5.运算顺序