为什么Array.prototype.forEach设计为跳过未定义的值?

时间:2013-11-10 19:59:43

标签: javascript foreach undefined

The doc of Array.prototype.forEach说:

forEach为具有指定值的数组的每个元素执行一次提供的回调 对于已删除或已初始化为未定义的索引,不会调用它。

为什么?

2 个答案:

答案 0 :(得分:3)

看看这个控制台“实验”我跑了:

Firebug console

Image link

您可以清楚地看到Array.forEach 没有跳过undefined (这里的密钥)。只会删除已删除的undefined

答案 1 :(得分:0)

在除Mozilla Firefox之外的所有浏览器中,forEach函数会跳过数组中值为undefined的元素。该函数会跳过所有浏览器中未分配的元素。

来自:https://msdn.microsoft.com/en-us/library/bb397509.aspx