数组是数值索引的,但同时它是对象,所以可以有字符串键值对。一般,你设置字符串属性时,不会影响
length
,但如果这个key可以转换成十进制数字时,则会影响数值索引
所以:(1)第一个数组里面确实是[A:1],但是数组的length的长度计算是根据键名是数字索引的最大值,而这个数组里面不是数字索引,它的第一键是A,值是1,所以length属性不会受到影响,
而(2)第二个arr['2'] = 2;字符串2会转换为2,所以此时数组里的元素时 undefined undefined 2