JavaScript 将字符串添加到数字

标签 javascript string numbers operators

我正在阅读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/

相关文章:

JavaScript 错误 : Object Required in ie6 & ie7

JavaScript:Number() 的预期行为

javascript - 使用此方法将字符串转换为整数是否有任何副作用

javascript - 当方法影响范围元素时的 Angular 服务设计

javascript - jQuery - 元素检测性能

ios - unicode 到字符串的快速转换

c++ - cin.clear() 和 cin.ignore() 将不起作用

sql将字符串拆分为一行

arrays - 对数组中输入的数字进行排序 - Ruby - 不使用 'sort'

javascript - 为什么我在SpeechSynthesisUtterance()中不能选择女性声音 "Microsoft Zira"?