console.log(1 + "2" + "2");
console.log(1 + +"2" + "2");
console.log(1 + -"1" + "2");
console.log(+"1" + "1" + "2");
console.log( "A" - "B" + "2");
console.log( "A" - "B" + 2);
结果:
122
32
02
112
NaN2
NaN
?> 第一个是字符串的拼接,也就是122
?> 第二个+"2"
,则会被转换成 1 + 2 + "2" = "32"
?> 第三个-"1"
转换成 1 - 1 + "2" = "02"
?> 第四个+"1"
会被转换为 1 + "1" + "2" = "112"
?> 第五个- "B"
无法转换为数字,因此"A" - "B"
等于 NaN
, 因此结果会变成 NaN + "2" = "NaN2"
?> 第六个通过上面的解释则会转换成 NaN + 2
,NaN
无法转换成数字,因此结果就会变成NaN
参考资料: