Javascript字符串连接中的NaN

NaN in Javascript string concatenation

本文关键字:NaN 连接 字符串 Javascript      更新时间:2023-09-26

取这个数组:

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

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

"Your name is required.'nAn email address is required.'n"

使用此代码:

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
}

我在控制台中得到NaN。为什么会这样,我该如何解决?

=++=不同。第一个是x = +y,第二个是x = x + y

+xNumber(x)从字面上将变量转换为数字的快捷方式。如果不能执行该操作,则返回NaN

+=的行为类似于字符串连接,当其中一个部分(左或右)是string类型。

你得到这个结果的原因是因为你写的是=+而不是+=。它被视为:

str = (+error) + "'n";

+errorerror强制转换为一个数字,这个数字将是NaN,因为它不能转换,所以你可以。

但是你可以只做errors.join("'n"),更容易!