Skip to content

Latest commit

 

History

History
41 lines (28 loc) · 937 Bytes

File metadata and controls

41 lines (28 loc) · 937 Bytes

16、下面的代码块会输出什么?为什么?

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 + 2NaN无法转换成数字,因此结果就会变成NaN

参考资料:

题目来源

JavaScript 运算符