javascript循环时间判断优化!
Author:zhoulujun Date:
同样百万次循环,在全局中完成,在立即执行函数中执行,封装在函数中执行,那个最快?
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