- 加法
+
- 减法
-
- 乘法
*
- 除法
/
- 模运算
%
- 幂运算
**
,即a ** b
求的是a的b次方
执行上述运算时,当两个操作数有非数字时,JS会隐式转换为数字,再进行运算;
一些特殊的非数字,会进行如下转换:
- true = 1
- false = 0
- null = 0
- undefined = NaN
- NaN = Nan,NaN即Not a Number
- Infinity = Infinity
- "123" = 123
- "123abc" = NaN,即非合法数字,是一个NaN
- 空字符串"" = 0
注意,加法在遇到字符串时,JS不会隐式转为数字,而是隐式转为字符串,此时加号实际上是进行字符串拼接的运算;
但是,算术运算符,是按照从左到右的顺序去执行的,考虑下面代码的运行结果:
对于第一行,首先是计算1 + 1
,此时是纯数字计算,结果是2,然后计算2 + '2'
,此时是进行字符串拼接,所以结果是字符串'22';
对于第二行,首先是计算'1' + 1
,是字符串拼接,结果是字符串'11',然后计算'11' + 2
,还是字符串拼接,所以结果是字符串'112';