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

Javascript字符串数组是否自动用逗号分隔?,javascript,Javascript,经过阅读和讨论,我仍然有这个问题。假设我有以下片段: var arr = new Array(3); arr[0] = "Zero"; arr[1] = "One"; arr[2] = "Two"; document.write(arr.join(",")); 如果我将document.write()行替换为document.write(arr),它们是否等效?替换语句是否自动以逗号作为分隔符连接数组元素 提前谢谢 默认情况下,将数组传递给document.write()将使用逗号分隔它们

经过阅读和讨论,我仍然有这个问题。假设我有以下片段:

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

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


提前谢谢

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


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

“但我不明白为什么”

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

Array.prototype.toString.apply([1,2,3]) == Array.prototype.join.apply([1,2,3])
> true
“但我不明白为什么”

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

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

为什么不自己试试呢?它们看起来一样,但我不知道为什么。你说的一样是什么意思?你的意思是说,当输出到浏览器时,它们看起来是一样的吗?输出在浏览器中看起来是一样的。但我不明白为什么。为什么不自己试试呢?它们看起来一样,但我不知道为什么。你说的一样是什么意思?你的意思是说,当输出到浏览器时,它们看起来是一样的吗?输出在浏览器中看起来是一样的。但我不明白为什么。所以它默认用逗号分隔?逗号是作为格式的一部分添加的。数组中实际上没有逗号。如果在内存中查找,则每个元素都会有一个插槽,其中包含不带逗号的值。我猜document.write()函数中有一些条件逻辑,用于确定作为参数传递的内容,如果它是一个数组,它必须用逗号连接它们并给出结果。我的意思是,根据Javascript标准,默认情况下添加的逗号是否用于格式化?我不知道规范是否说明了这一点,但很清楚,这是该方法的功能。因此默认情况下,它用逗号分隔?逗号是作为格式化。数组中实际上没有逗号。如果在内存中查找,则每个元素都会有一个插槽,其中包含不带逗号的值。我猜document.write()函数中有一些条件逻辑,用于确定作为参数传递的内容,如果它是一个数组,它必须用逗号连接它们并给出结果。我的意思是,根据Javascript标准,默认情况下添加逗号是为了格式化吗?我不知道规范是否说明了这一点,但很明显,这就是该方法的功能。