在字符串中添加+""追加"0"

Dro*_*out 30 javascript

通过偶然的错字我遇到了一个我无法解释的行为.

当我有

var text = "abc";
text += + "";
Run Code Online (Sandbox Code Playgroud)

text变量突然变abc0.

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

小智 48

+ ""评估数字0.这是因为为了应用一元加运算符,""被强制转换为一个数字 - 相同Number(""),这导致0字符串为空或空白.

然后,当您在字符串中"添加"(+或在此情况下+=)数字时,它将被强制转换为字符串,从而产生.0"abc""0""abc0"

规格:

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

  • *只是JavaScript的东西*.至少它是有记录的,但这些是你不期望的小东西(你应该因为它不是一种打字的语言),然后它们会使你的系统崩溃. (2认同)

Cod*_*rPi 10

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

在此输入图像描述

  • 打字稿是如此可爱的语言.:) (3认同)