安全地访问数组中的负索引

时间:2016-10-11 08:35:46

标签: javascript arrays

是Javascript中的约定/规范:

如果我们没有为数组a的负索引分配任何内容,比如索引-1,则a[-1]将始终返回undefined,其对象键和长度保持不变?

1 个答案:

答案 0 :(得分:2)

  

这是一个约定/规范[...] a[-1]将始终返回undefined [?]

不,不,不是:

var a = [];
a[-1] = 'foo';
console.log(a[-1]);

但是,这确实不会改变数组的length属性,因为只有整数> = 0的属性才被认为是数组索引的一部分;您在对象上设置的任何其他属性(包括.foo.bar[-1]都不会被视为数组索引。