在阅读this discussion和this article之后,我仍然有这个问题。假设我有以下代码段:
var arr = new Array(3);
arr[0] = "Zero";
arr[1] = "One";
arr[2] = "Two";
document.write(arr.join(","));
如果我将document.write()
行替换为document.write(arr);
,它们是否相同? replacement语句是否自动使用逗号作为分隔符连接数组元素?
提前致谢!
答案 0 :(得分:5)
“但我无法弄清楚为什么”
这是因为一切都有toString
函数作为其原型的一部分。当你把它写出来时,调用这个函数来获取它的任何字符串表示。对于数组,默认处理与join
相同。
Array.prototype.toString.apply([1,2,3]) == Array.prototype.join.apply([1,2,3])
> true
答案 1 :(得分:1)
将数组传递给document.write()会默认使用逗号分隔它们。
var arr = new Array(3);
arr[0] = "Zero";
arr[1] = "One";
arr[2] = "Two";
document.write(arr); //outputs Zero,One,Two