NaN在Javascript字符串连接中

bei*_*lex 8 javascript

拿这个数组:

errors [
    "Your name is required.", 
    "An email address is required."
]
Run Code Online (Sandbox Code Playgroud)

我试图迭代它并创建一个字符串,如:

"Your name is required.\nAn email address is required.\n"
Run Code Online (Sandbox Code Playgroud)

使用此代码:

var errors = ["Your name is required.","An email address is required."];

if (errors) {

    var str = '';

    $(errors).each(function(index, error) {
        str =+ error + "\n";
    });

    console.log(str); // NaN

}
Run Code Online (Sandbox Code Playgroud)

我正在进入NaN控制台.为什么这样,我该如何解决?

提前致谢.

Vis*_*ioN 14

=+是不一样的+=.首先是x = +y另一个是x = x + y.

+x是将Number(x)字符转换为数字的快捷方式.如果无法执行操作,NaN则返回.

+=当其中一个部分(左或右)具有string类型时,它就像字符串连接一样.

  • 另一件好事是 + 在行尾和下一行的开头。很难发现和 NaNs 你的字符串。 (2认同)

Nie*_*sol 10

你得到这个结果的原因是因为你写的是=+代替+=.它被视为:

str = (+error) + "\n";
Run Code Online (Sandbox Code Playgroud)

+error强制转换error为数字,NaN因为它无法转换,所以你去了.

但你可以做的errors.join("\n")更容易!