添加+""字符串附加" 0"

时间:2015-11-24 13:19:26

标签: javascript

由于偶然的错字,我遇到了一种我无法解释的行为。

当我有

var text = "abc";
text += + "";

text变量突然变为abc0

有人可以就此提供任何见解吗?

3 个答案:

答案 0 :(得分:48)

+ ""评估为0。这是因为为了应用一元加号运算符,""被强制转换为一个数字 - 与Number("")相同,如果字符串为空或空白,则会生成0。 / p>

当您在字符串+中“添加”(+=或在此情况下为0)数字"abc"时,它会被强制转换为字符串{{1导致"0"

来自spec

  

StringNumericLiteral为空或仅包含空格,将转换为+0。

答案 1 :(得分:10)

正如你在TypeScript (+ "")中看到的那样是一个数字(0):

enter image description here

答案 2 :(得分:1)

来自:http://xkr.us/articles/javascript/unary-add/

在JavaScript中,可以在单个元素之前单独使用+运算符。这表示数学运算并尝试将元素转换为数字。如果转换失败,它将评估为NaN。当想要快速将字符串转换为数字时,这尤其有用,但也可以在其他类型的选择集上使用。