示例1:
Var arr = [1,2,3] + 1;
console.log(arr) // "1,2,31"
typeof arr // String
示例2:
var arr = 5 + ["h","e","l","l","o"];
console.log(arr) // "5h,e,l,l,o";
typeof arr // String
执行上述操作将数字/字符串连接到数组中的最后一个/第一个元素。想了解这里发生了什么?
答案 0 :(得分:2)
当您使用+
(在这种情况下连接)时,它会将 toString()
方法应用于数组。所以它只是与结果连接而不是追加到最后一个或第一个元素。
Array对象会覆盖Object的toString方法。 对于Array对象,toString方法连接数组并返回一个字符串,其中包含用逗号分隔的每个数组元素。
当数组要表示为文本值或在字符串连接中引用数组时,JavaScript会自动调用toString方法。 ( Taken from here )
检查以下片段所有结果是否相同。
var arr = [1, 2, 3];
// all these are providing the same result
// result of toString method
console.log(arr.toString())
// concatenation with empty string at end
console.log(arr + "")
// concatenation with empty string at start
console.log("" + arr);

答案 1 :(得分:0)
要向数组添加元素,请使用以下方法之一。
正如@Pranav C Balan提到+
运算符尝试连接2个值。这是Javascript中最奇怪的部分之一。这是一个非常有用的页面,包含所有细微之处JS Garden
示例1:
Var arr = [1,2,3];
arr.push(1)
console.log(arr) // [1,2,3,1]
typeof arr // object
示例2:
var arr = ["h","e","l","l","o"];
arr.unshift(5);
console.log(arr) // [5,"h","e","l","l","o"];
typeof arr // object