这个问题更多地是为什么这段代码可以这样工作,而不是怎样让这段代码工作。
我正在学习JavaScript的codecademy教程,并且遇到了一节课,我可以在自己的代码中概念上利用这个课程,因为我能看到这个特定代码的模式 - 但是这段代码为什么能这样工作却说不清。下面是一个例子:
当运行以上代码时,控制台会显示“Third”。我知道JavaScript语言是一种“零索引”语言,我知道在这个数组中,“第一个”位置从左到右计数为“0”,但我的问题是,即使我们从“0”开始并计算每个项目;0然后1然后2;控制台不应该记录“Second”而不是“Third”吗?还是JavaScript中的“length”方法忽略了“0”基于索引系统,实际上从“1”开始计数;在这种情况下,答案应该仍然是“Second”,而不是“Third”...无论如何,我的大脑都在计算“Second”,而不是“Third”,尽管控制台输出是“third”... 有人能解释一下我错过了什么吗?
我正在学习JavaScript的codecademy教程,并且遇到了一节课,我可以在自己的代码中概念上利用这个课程,因为我能看到这个特定代码的模式 - 但是这段代码为什么能这样工作却说不清。下面是一个例子:
let myArray = ['First','Second','Third'];
var last = myArray[myArray.length - 1];
console.log(last);
当运行以上代码时,控制台会显示“Third”。我知道JavaScript语言是一种“零索引”语言,我知道在这个数组中,“第一个”位置从左到右计数为“0”,但我的问题是,即使我们从“0”开始并计算每个项目;0然后1然后2;控制台不应该记录“Second”而不是“Third”吗?还是JavaScript中的“length”方法忽略了“0”基于索引系统,实际上从“1”开始计数;在这种情况下,答案应该仍然是“Second”,而不是“Third”...无论如何,我的大脑都在计算“Second”,而不是“Third”,尽管控制台输出是“third”... 有人能解释一下我错过了什么吗?
myArray.length - 1 == 2
... 现在你认为 ... 长度是长度,即3 ... 而不是2,因为有3个元素 ... 索引是从零开始的,长度是 ... 好吧,长度就是长度。 - Jaromanda X0,1,2
仍然具有长度为3
。 - James Maa