在JavaScript中,我定义了这样的数组
var arr = [1,2,3]; 我也可以
arr[-1] = 4; 现在如果我这样做
arr = undefined; 我也丢失了对arr [-1]值的引用。
因此从逻辑上来说,似乎arr [-1]也是arr的一部分。
但是当我执行以下操作时(未将arr设置为undefined)
arr.length; 返回3而不是4 ;
因此,我的观点是,如果数组可以与负索引一起使用,则这些负索引也应该是其长度的一部分**。我不知道可能是我错了,还是可能缺少一些关于数组的概念。
问题来源于stack overflow
因此从逻辑上来说,似乎arr [-1]也是arr的一部分。
是的,但不是您认为的那样。
您可以为数组分配任意属性(就像JavaScript中的任何其他Object一样),这是在数组上“索引” -1并分配值时要做的事情。由于这不是数组的成员,而只是一个任意属性,因此不应期望length考虑该属性。
换句话说,以下代码执行相同的操作:
var arr = [1, 2, 3];
arr.cookies = 4;
alert(arr.length) // 3;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。