[英]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.