javascript - 将 +""添加到字符串后追加 "0"

标签 javascript

由于一个意外的打字错误,我遇到了一个我无法解释的行为。

当我有

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/

相关文章:

javascript - 如何循环/处理 Javascript Key :Value pairs?

javascript - 单击同一级别的元素(兄弟?)切换类,但不要切换具有相同类的其他元素

javascript - 通过动态值改变CSS

javascript - GraphQL 不允许查询不同字段

javascript - 在 jquery lightbox 中制作循环

javascript - 为什么 isPrototypeOf() 返回 false?

javascript - jquery 路径点和 .scroll() 冲突

javascript - 当所有动画完成时的clearInterval()和setInterval()

javascript - 新版 Angular 中的 Ng-animate

javascript - 是否应该将 refs 列为 useEffect 等的依赖项?