JavaScript将字符串添加到数字中

Sin*_*hil 28 javascript string numbers operators

我正在阅读MDN上的JavaScript重新介绍,在Numbers部分中,它表示只需在前面添加一个加号运算符即可将字符串转换为数字.

例如:

+"42"将产生42的数字输出.

但是在关于运算符的部分中,它说通过向任何数字添加字符串"something",您可以将该数字转换为字符串.他们还提供了以下让我困惑的例子:

"3"+ 4 + 5可能会在输出中产生345的字符串,因为数字4和5也将转换为字符串.

但是,3 + 4 +"5"不会产生12的数字,而不是如他们的例子中所述的字符串75吗?

在第二个例子中,关于运算符的部分不会站在字符串"5"前面的+运算符将该字符串转换为数字5,然后将所有内容添加到等于12?

epa*_*llo 36

你所说的是一元加.它与字符串连接或添加使用的加号不同.

如果您想使用一元加号进行转换并将其添加到之前的值,则需要将其加倍.

> 3 + 4 + "5"
"75"
> 3 + 4 + +"5"
12
Run Code Online (Sandbox Code Playgroud)

编辑:

您需要了解操作顺序:

+-具有相同的优先级并与左侧相关联:

 > 4 - 3 + 5
 (4 - 3) + 5
 1 + 5
 6
Run Code Online (Sandbox Code Playgroud)

+ 再次与左边相关:

> 3 + 4 + "5"
(3 + 4) + "5"
7 + "5"
75
Run Code Online (Sandbox Code Playgroud)

一元运算符通常比二元运算符具有更强的优先级:

> 3 + 4 + +"5"
(3 + 4) + (+"5")
7 + (+"5")
7 + 5
12
Run Code Online (Sandbox Code Playgroud)


小智 6

您还可以使用 parseInt() 或 parseFloat(),如下所示:

> 1 + 2 + "3"
"33"
> 1 + 2 + parseInt(3)
6
Run Code Online (Sandbox Code Playgroud)

我认为这比使用 +"3" 更干净,但这只是我的意见。