JavaScript获得数组大小效率

JavaScript get array size efficiency

本文关键字:效率 数组 JavaScript      更新时间:2023-10-16

我从w3schools这里读到以下内容

Bad Code:
for (i = 0; i < arr.length; i++) {
Better Code:
l = arr.length;
for (i = 0; i < l; i++) {

我在学校里学过c++和Java,我从来没有学过这是我们需要考虑的效率。获取数组的大小不是一个O(1)操作吗?这种优化真的有必要吗?这真的是人们在工业中所做的吗?

编辑:

假设数组的大小不变

是的,获得长度是0(1),但它不是通常优化出来,因为在循环期间数组长度改变是可行的。

在我知道数组长度不会改变的情况下,我的首选语法是:

for (var i = 0, n = arr.length; i < n; ++i) 
像往常一样,w3schools忽略了一点——他们引用的第一个版本并不总是坏代码,因为如果在循环期间修改数组长度,该代码可能正是所需要的。