为什么1+ +"2"+3在JavaScript中评为6?

Ank*_*thi 4 javascript

任何人都可以告诉我为什么以及1+ +"2"+3JavaScript中的表达式如何产生6,这也是一个数字?我不明白在两个+运算符之间引入单个空格如何将字符串转换为数字.

Ang*_*ris 6

使用+"2"将字符串value("2")强制转换为数字,因此exrpession的计算结果是6因为它基本上计算1 + (+"2") + 3了依次求值的值1 + 2 + 3.

console.log(1 + +"2" + 3);
console.log(typeof "2");
console.log(typeof(+"2"));
Run Code Online (Sandbox Code Playgroud)

如果不将两个+符号分开,则将它们解析为++(增量值)运算符.