• home > webfront > ECMAS > javascript >

    javascript循环时间判断优化!

    Author:zhoulujun Date:

    同样百万次循环,在全局中完成,在立即执行函数中执行,封装在函数中执行,那个最快?letloops=1000000;console time(& 39;a& 39;);for(let

    同样百万次循环,在全局中完成,在立即执行函数中执行,封装在函数中执行,那个最快?

    let loops=1000000;
    console.time('a');
    
    for(let i=0;i<loops;i++){
    
    }
    console.timeEnd('a');
    
    console.time('b');
    (function () {
        for(let i=0;i<loops;i++){
    
        }
    })();
    console.timeEnd('b');
    
    console.time('c');
    function a() {
        for(let i=0;i<loops;i++){
    
        }
    }
    a()
    console.timeEnd('c');


    结果是:

    a: 4.255ms

    b: 2.061ms

    c: 2.185ms

    封装在函数中执行快。

    为什么呢:


    如果i是挂在全局上的,因为他每次loop完都要从全局中找回i值,i++ 和 判断

    而封装在 function里面的,对比与在全局里找i,单单在function 里找起来比较快


    所以他们两个的时间差其实 是loop完一次后找回i这个行为造成的





    转载本站文章《javascript循环时间判断优化!》,
    请注明出处:https://www.zhoulujun.cn/html/webfront/ECMAScript/js/2018_0206_8075.html