代码优化,首先应该优化循环,但循环处理展开,判断条件的优化,还有其他方式吗?
其实在操作系统中介绍了系统会优化的一个方法,就是循环不变量外提。其实在for循环中把长度定义在循环外就是循环不变量外提。
1循环不变量外提
var lengtharr = t.length; for (var i = 0; i < lengtharr; i++) { total += t[i]; }
var lengtharr=t.length; for(var i=0;i<lengtharr;i++) { syt.name.index.total+=t[i].; }
var total=syt.name.index.total; var lengtharr=t.length; for(var i=0;i<lengtharr;i++) { total+=t[i].; }
2使用原始方法,避免使用封装的方法。
最典型的例子莫过于jQuery的each方法比原始的for循环效率低很多
3减少内部必要的判断逻辑
例如可以展开循环减少判断,针对具体的情况取消不必要的判断,改变条件的使用方式等。
前端性能优化:条件判断优化
优化原则:
除非你要迭代遍历一个属性未知的对象,否则不要使用 for-in 循环。
改善循环性能的最好办法是减少每次迭代中的运算量,并减少循环迭代次数。
一般来说,switch 总是比 if-else 更快,但并不总是最好的解决方法。
当判断条件较多时,查表法比 if-else 或者 switch更快。
运行的代码总量越大,使用这些策略所带来的性能提升就越明显。