在阅读了这个讨论和这篇文章之后,我仍然有这个问题。假设我有以下代码段:
var arr = new Array(3);
arr[0] = "Zero";
arr[1] = "One";
arr[2] = "Two";
document.write(arr.join(","));
如果我用 替换该document.write()
行document.write(arr);
,它们是否等效?替换语句是否自动以逗号作为分隔符连接数组元素?
提前致谢!
“但我不知道为什么”
这是因为一切都具有toString
作为其原型的一部分的功能。当你把它写出来时,这个函数被调用来获取它的字符串表示形式。对于数组,默认处理方式与join
.
Array.prototype.toString.apply([1,2,3]) == Array.prototype.join.apply([1,2,3])
> true
默认情况下,将数组传递给 document.write() 将用逗号分隔它们。
var arr = new Array(3);
arr[0] = "Zero";
arr[1] = "One";
arr[2] = "Two";
document.write(arr); //outputs Zero,One,Two