我是编程和Javascript的绝对初学者,正在观看道格拉斯·克罗克福德的一个视频,他说下面的内容
与对象不同的数组具有特殊长度成员
它总是比最高整数下标大1
在这个数组中
var a = [1,2,3,4,5,6,7]
a.length
等于7。
所以我不太确定1大于最大整数的下标是什么意思?它只是来自旧版Javascript的过时信息还是我错过了什么?
答案 0 :(得分:0)
长度等于数组中元素的数量,并且索引从0开始,理解它就像你不是以1开头而不是0,所以你将比总元素(长度)少1。所以
长度=总元素
和
last index = length-1;
答案 1 :(得分:-1)
数组从0开始索引(第一个元素),但长度是1(一个元素)(如果没有元素,数组的长度不会为-1,长度为0;如果有2个元素,第二个元素的索引为1,长度为2)。
答案 2 :(得分:-1)
这只意味着数组的长度总是 *它的最大索引+ 1.
考虑:
var a = [];
a[6] = 'foo';
console.log(a.length) //7
a[20] = 'bar';
console.log(a.length) //21
*实际上并非总是如此,例如当您使用带有数字参数的数组构造函数:var a = new Array(5)
时,数组为空,但它的length
明确地设置为5
答案 3 :(得分:-2)
索引和长度不同。虽然JavaScript数组将从0开始,但长度始终是真实数字。这很有用,因为在切片上,最后一个数字不包括在内。