1.算术运算符
- 加法运算符:
x + y
- 减法运算符:
x - y
- 乘法运算符:
x * y
- 除法运算符:
x / y
- 指数运算符:
x ** y
- 余数运算符:
x % y
- 自增运算符:
++x
或者x++
- 自减运算符:
--x
或者x--
- 数值运算符:
+x
- 负数值运算符:
-x
1.1加法运算符
加法运算符(+)是最常见的运算符,用来求两个数值的和
JavaScript 允许非数值的相加1 + 1 // 2
上面代码中,第一行是两个布尔值相加,第二行是数值与布尔值相加。这两种情况,布尔值都会自动转成数值,然后再相加true + true // 2
1 + true // 2
比较特殊的是,如果是两个字符串相加,这时加法运算符会变成连接运算符,返回一个新的字符串,将两个原字符串连接在一起
加法运算符是在运行时决定,到底是执行相加,还是执行连接。也就是说,运算子的不同,导致了不同的语法行为,这种现象称为“重载”(overload)。由于加法运算符存在重载,可能执行两种运算,使用的时候必须很小心'a' + 'bc' // "abc"
1 + 'a' // "1a"
除了加法运算符,其他算术运算符(比如减法、除法和乘法)都不会发生重载。它们的规则是:所有运算子一律转为数值,再进行相应的数学运算'3' + 4 + 5
3 + 4 + '5'
1 - '2' // -1
1 * '2' // 2
1 / '2' // 0.5
2.比较运算符
>
大于运算符<
小于运算符<=
小于或等于运算符>=
大于或等于运算符==
相等运算符===
严格相等运算符!=
不相等运算符!==
严格不相等运算符
运算符比较的规则:NaN
进行任何比较均返回false
,在同为字符串时进行字典比较,否则通过隐式转换成数值类型进行比较3.布尔运算符
● 取反运算符:!
● 且运算符:&&
● 或运算符:||
● 三元运算符:?:
4.二进制运算符
5.运算顺序