NaN在Javascript字符串连接中

时间:2014-07-02 15:12:06

标签: javascript

拿这个数组:

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。为什么这样,我该如何解决?

提前致谢。

2 个答案:

答案 0 :(得分:13)

=++=不同。首先是x = +y,另一个是x = x + y

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

当其中一个部分(左侧或右侧)具有+=类型时,

string就像字符串连接一样。

答案 1 :(得分:9)

您获得该结果的原因是因为您正在撰写=+而不是+=。它被视为:

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

+errorerror投射到一个数字,该数字为NaN,因为它无法转换,所以你去了。

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