为什么在Javascript中会发生这样的事情?
'5'+3 = 53
'5'-3 = 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"结果。