在循环次数固定的情况下,循环体里做的事情越多意味着执行的效率越慢,反之执行效率越高。把每次循环都要去用操作的数据值不变的语句都可以抽离到循环体的外部,这个功能类似于数据缓存。
// 优化前
const arr = [1, 2, 3, 4, 5];
for (let i = 0; i < arr.length; i++) {
console.log(i)
}
// 优化后
const len = arr.length
for (let i = 0; i < len; i++) {
console.log(i)
}
// 改造后
let len = arr.length
while (len--) {
console.log(arr[len])
}