小故事
有两个小和尚a和b住在山顶,他们去上下打水,a拿着18L的饮水机水桶,b拿着500ML的康师傅矿泉水瓶。在他们返回的途中b就balabala嘲讽a,a默默不语。待到他们到山顶的时候,a非常累然后喝了500ml水,b呢废话太多也喝了500ml,发现不够。又去山下打水,然后又到山顶渴了又喝水,发现还不够就又去山下,最后b就取见GG了。
结论
从上边非常尬的故事看出,提前准备很重要,所以当运用到for循环的时候也是如此。首先我们来看下MDN(developer.mozilla.org/zh-CN/docs/…):
例子
let arr = new Array(100000)
console.time('count1')
let total = 0
for (let i = 0, j = arr.length; i < j; i++) {
total+=i
}
console.timeEnd('count1')
console.time('count2')
let total2 = 0
for (let i = 0; i < arr.length; i++) {
total2+=i
}
console.timeEnd('count2')
根据MDN的说明和例子,来看,如果我们把循环条件前置:放到循环开始初始化的时候。可以大幅减少循环所需时间,特别是在循环条件很大或者很深的时候。