由于一个意外的打字错误,我遇到了一个我无法解释的行为。
当我有
var text = "abc";
text += + "";
text
变量突然变成了abc0
。
有人可以对此提供任何见解吗?
最佳答案
+ ""
的计算结果为数字 0
。这是因为为了应用一元加运算符,""
被强制转换为一个数字——与 Number("")
相同,这导致 0
如果字符串为空或空白。
然后当您“添加”(+
或在本例中为 +=
)数字 0
到字符串 "abc "
,它被强制转换为字符串 "0"
,结果为 "abc0"
。
来自spec :
A StringNumericLiteral that is empty or contains only white space is converted to +0.
关于javascript - 将 +""添加到字符串后追加 "0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33894778/