• 避免for-in
  • 把数组长度保存在局部变量中
  • 较少迭代次数(Duffs Device)
  • 基于函数的循环比基于循环的迭代消耗性能更多
  • 优化if-else,一般switch比if-else速度快(hash tabel)

  1)避免用for-in

    常见的循环有:for、do-while、while、for-in。for-in循环比较慢,因为每次迭代操作时会同事搜索实例或原型属性。

  2)把数据数组长度保存在局部变量中 

for(var i = 0, len = items.length;i < len; i++){
process(items[i]);
}

  3)减少迭代次数(Duffs Device)http://blog.csdn.net/cengjingcanghai123/article/details/21231865

<script type="text/javascript">
var iterations = Math.floor(items.length/8),
startAt = items.length % 8,
i = 0;
do {
switch(startAt) {
case 0: process(items[i++]);
case 7: process(items[i++]);
case 6: process(items[i++]);
case 5: process(items[i++]);
case 4: process(items[i++]);
case 3: process(items[i++]);
case 2: process(items[i++]);
case 1: process(items[i++]);
}
startAt = 0;
}while(--iterations);
</script>

  4)基于函数的循环比基于循环的迭代消耗性能更多。例如:for循环迭代比forEach函数迭代性能高

  5)优化if-else,一般switch比if-else速度快,但是在判断条件多时,使用查找表比if-else和switch都快

最新文章

  1. YY一下微信线下支付的场景
  2. Java 批量插入数据(Oracle)
  3. delphi 控件大全(确实很全)
  4. 9.请写出PHP5权限控制修饰符
  5. C++中的vector
  6. javascript跨域通信(一):利用location.hash实现跨域iframe自适应
  7. JNI字段描述符-Java Native Interface Field Descriptors
  8. 让你的PHP程序真正的实现多线程(PHP多线程类)(转)
  9. lucene4入门(1)
  10. 启动hbase时,hregionserver没有启动的原因
  11. C++沉思录之三——设计容器类
  12. 2015第23周一SVN插件安装
  13. P1092 虫食算
  14. .net随笔--不好归类的
  15. Spring Security(二十二):6.4 Method Security
  16. 【BZOJ3252】攻略(长链剖分,贪心)
  17. python 减少可调用对象的参数个数
  18. Spring Boot 揭秘与实战(三) 日志框架篇 - 如何快速集成日志系统
  19. padding 扩大边距 margin-top 与页面顶部的距离 hover鼠标移动到上面出现背景色CSS
  20. js字符转换为数字

热门文章

  1. apache不记录指定类型的访问日志
  2. 十三:jinja2过滤器之default过滤器和or过滤器
  3. 使用svctraceviewer查看WCF服务异常信息
  4. cocos2dx[3.2](7) 核心类Director/Scene/Layer/Sprite
  5. squid的三种模式
  6. 利用python求非线性方程
  7. AndroidStudio ADB WIFI :adb wifi scan ip address
  8. 2019JAVA第八次实验报告
  9. [转帖]软件的变革与 AOT
  10. mybatis 批量操作 ------持续更新