[英]NaN in Javascript string concatenation
拿这个数组:
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
。
+x
是Number(x)
字面上将变量转换为Number(x)
的快捷方式。 如果无法执行操作,则返回NaN
。
+=
当其中一个部分(左侧或右侧)具有string
类型时,它就像字符串连接一样。
你得到这个结果的原因是因为你写的是=+
而不是+=
。 它被视为:
str = (+error) + "\n";
+error
蒙上error
的数量,这将是NaN
,因为它不能被转换,所以你去。
但你可以做errors.join("\\n")
而不是更容易!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.