我一直认为在JavaScript中缓存数组的长度是一个好主意(尤其是在for循环的情况下),因为计算数组长度的开销很大。
例
for (var i = 0; i < arr.length; i++) { }
// vs
for (var i = 0, arrLength = arr.length; i < arrLength; i++) { }
但是,我认为也许length只有在创建和更改数组时才更新该属性。因此,与读取存储在变量中的操作相比,读取它的操作不会太昂贵(与其他语言的其他方法相对,后者可能需要在内存中寻找内容的结尾,例如strlen()在C语言中)。
我有两个问题。我也对它的工作方式感兴趣,所以请不要用过早的优化工具打我。
假设浏览器中的JavaScript引擎。
length在JavaScript中缓存数组的属性有什么好处吗?在读取对象属性的局部变量时还有更多的事情吗?
该length属性是否仅在创建时以及在on shift()和pop()type方法上进行了更改,这些方法不返回新数组,否则仅存储为整数?
饮歌长啸
慕妹3242003
相关分类