之间是否存在很大差异?
for (var i = 0, c = data.length; i < c; i++) {
}
并且
for (var i = 0; i < data.length; i++) {
}
有什么区别?
答案 0 :(得分:2)
在第一个代码中,数组的length
(或类似数组集合)仅计算一次并且缓存< / strong>即可。因此,每次迭代都不会重新计算长度。
在第二个代码中,每次迭代计算长度。
您可以说缓存长度稍微比重新计算长度更快。对于较小的阵列,您可以忽略这一差异。但对于巨大的阵列,差异可能很大。
使用哪种方式完全取决于用例。 如果在循环内更新数组长度,则必须使用第二个代码。
for (var i = 0; i < data.length; i++) {
// Useful when the data length is altered in here
}
答案 1 :(得分:1)
每次在
中计算data.length
时
for (var i = 0, c = data.length; i < c; i++) {}