首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JavaScript中读取数组的`length`属性真的是一个开销很大的操作吗?

在JavaScript中读取数组的`length`属性真的是一个开销很大的操作吗?
EN

Stack Overflow用户
提问于 2011-04-22 14:36:04
回答 5查看 14.4K关注 0票数 71

我一直认为在JavaScript中缓存数组的长度是一个好主意(特别是在for循环的情况下),因为计算数组长度的开销很大。

示例

代码语言:javascript
复制
for (var i = 0; i < arr.length; i++) { }

// vs

for (var i = 0, arrLength = arr.length; i < arrLength; i++) { }

但是,我认为length属性可能只在数组创建和更改时更新。因此,与读取存储在变量中的它相比,读取它不应该是一个代价太高的操作(与其他语言中的其他方法相反,其他语言中的其他方法可能需要在内存中查找某些内容的结尾,例如C中的strlen() )。

我有两个问题。我也对它是如何工作的很感兴趣,所以请不要用过早的优化棒来打击我。

假设浏览器中的JavaScript引擎。

  1. 在JavaScript中缓存数组的length属性有什么好处吗?在对象的属性上读取局部变量是否涉及更多内容?
  2. 是不是只在创建时以及在不返回新数组的shift()pop()类型方法上更改了length属性,否则只是将其存储为整数?
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5752906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档