前端优化第一话:for循环

306 阅读1分钟

小故事

有两个小和尚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的说明和例子,来看,如果我们把循环条件前置:放到循环开始初始化的时候。可以大幅减少循环所需时间,特别是在循环条件很大或者很深的时候。

结果