减法和求和时的不同Javascript行为

时间:2015-01-07 10:26:14

标签: javascript

为什么在Javascript中会发生这样的事情?

'5'+3 = 53
'5'-3 = 2

2 个答案:

答案 0 :(得分:3)

发生这种情况是因为+运算符过载了。如果任何操作数是字符串,则执行字符串连接。如果您有两个数字,则执行添加。

换句话说

2+3=5

'2'+3='23'2+'3'='23'

另一方面,对于 - 运算符,它不会以这种方式重载,并且所有操作数都转换为数字。

'8'-2=6

因为-没有超载而操作数' 8'将被转换为8.因此,我们得到6。

有关此问题的更多信息,请查看here并阅读第11.6.1和11.6.2段。

答案 1 :(得分:1)

字符串连接是用+完成的,所以Javascript会将第一个数字5转换为字符串并连接" 5"和" 3"制作" 53"。

你不能对字符串进行减法,所以Javascript会转换第二个数字,即" 3"到一个数字并从5中减去3,得到" 2"结果。