数组异常:属性与元素
在 JavaScript 中,对象的多功能性也扩展到了数组。这种奇怪的现象源于数组继承自 Object 原型这一事实。因此,可以像操作对象一样操作数组。
数组中的属性赋值
考虑以下代码片段:
var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin";
和
var myObject = {'A': 'Athens', 'B':'Berlin'};
这些代码片段看起来是相同的,因为它们都创建了具有命名属性的对象。然而,它们之间存在着根本的区别。
属性滥用的陷阱
虽然数组可以被视为对象,但重要的是要注意数组的主要用途对于数字索引数据。将非数字键分配给数组可能会导致意外行为。
例如,请考虑以下内容:
var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin"; alert(myArray.length);
不要显示“2”(预期的元素数量),警报显示“0”。这是因为非数字键(“A”和“B”)不会增加数组的长度属性,该属性跟踪数字索引元素的数量。
总而言之,虽然添加似乎很方便数组的命名属性,应该避免这种做法,因为它破坏了数组的目的并可能导致意外的行为。对于非数字键,建议使用纯对象代替。
以上是属性分配如何影响 JavaScript 数组长度?的详细内容。更多信息请关注PHP中文网其他相关文章!