我正在阅读re-introduction to JavaScript on MDN在数字部分中,它说您只需在字符串前面添加一个加号运算符即可将字符串转换为数字。
例如:
+"42"将产生 42 的数字输出。
但是在关于运算符的部分中,它说通过向任何数字添加字符串“某物”,您可以将该数字转换为字符串。他们还提供了以下让我困惑的示例:
“3” + 4 + 5 可能会在输出中产生 345 的字符串,因为数字 4 和 5 也会转换为字符串。
但是,3 + 4 + "5"不会产生数字 12 而不是像示例中所述的字符串 75 吗?
在有关运算符的部分的第二个示例中,位于字符串“5”前面的 + 运算符是否不会将该字符串转换为数字 5,然后将所有内容相加等于 12?
最佳答案
你所说的是一元加。它与用于字符串连接或加法的加号不同。
如果您想使用一元加法进行转换并将其添加到之前的值中,则需要将其加倍。
> 3 + 4 + "5"
"75"
> 3 + 4 + +"5"
12
编辑:
您需要了解操作顺序:
+
和 -
具有相同的优先级并与左侧关联:
> 4 - 3 + 5
(4 - 3) + 5
1 + 5
6
+
再次关联到左侧:
> 3 + 4 + "5"
(3 + 4) + "5"
7 + "5"
75
一元运算符通常比二元运算符具有更强的优先级:
> 3 + 4 + +"5"
(3 + 4) + (+"5")
7 + (+"5")
7 + 5
12
关于JavaScript 将字符串添加到数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16522648/