Javascript字符串数组是否自动用逗号分隔?

时间:2012-04-25 20:31:28

标签: javascript

在阅读this discussionthis 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语句是否自动使用逗号作为分隔符连接数组元素?

提前致谢!

2 个答案:

答案 0 :(得分:5)

“但我无法弄清楚为什么”

这是因为一切都有toString函数作为其原型的一部分。当你把它写出来时,调用这个函数来获取它的任何字符串表示。对于数组,默认处理与join相同。

Array.prototype.toString.apply([1,2,3]) == Array.prototype.join.apply([1,2,3])
> true

答案 1 :(得分: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