0

在阅读了这个讨论这篇文章之后,我仍然有这个问题。假设我有以下代码段:

var arr = new Array(3);
arr[0] = "Zero";
arr[1] = "One";
arr[2] = "Two";

document.write(arr.join(","));

如果我用 替换该document.write()document.write(arr);,它们是否等效?替换语句是否自动以逗号作为分隔符连接数组元素?

提前致谢!

4

2 回答 2

5

“但我不知道为什么”

这是因为一切都具有toString作为其原型的一部分的功能。当你把它写出来时,这个函数被调用来获取它的字符串表示形式。对于数组,默认处理方式与join.

Array.prototype.toString.apply([1,2,3]) == Array.prototype.join.apply([1,2,3])
> true
于 2012-04-25T20:38:07.407 回答
1

默认情况下,将数组传递给 document.write() 将用逗号分隔它们。

http://jsfiddle.net/XnW7V/

var arr = new Array(3);
arr[0] = "Zero";
arr[1] = "One";
arr[2] = "Two";

document.write(arr); //outputs Zero,One,Two
于 2012-04-25T20:35:00.197 回答