因为数组只是对象,对象可以有任意属性。你可以对任何其他对象(例如函数或正则表达式)进行相同的操作。请注意,ex2不被视为“数组索引”。只有名称位于0和2^32-2之间的属性被视为数组元素。此行为是否可取?这取决于情况。我认为它使代码更难理解,意图不够清晰,并且可能会让不熟悉JS的人感到困惑。当然,这种灵活性也可以成为非常强大的特性。你应该负责使用它,可能仅在没有其他选项时才使用。然而,我没有看到添加附加属性到数组中特别有用的情况。
arr[0]
与arr["0"]
相同,并且您也可以对对象使用整数索引,例如var obj = {}; obj[0] = 1;
。 - Thilo