本文作者:zifan 

来自:携程设计委员会

链接:http://ued.ctrip.com/blog/javascript-code-performance-optimization-summary.html

下面是我总结的一些小技巧,仅供参考。

以下代码基本上在jQuery的源码里面都可以看到,如有说得不对的地方,请大家指出。

尽量使用源生方法

javaScript是解释性语言,相比编译性语言执行速度要慢。浏览器已经实现的方法,就不要再去实现一遍了。另外,浏览器已经实现的方法在算法方面已经做了很多优化。

避免全局查找

在一个函数中会用到全局对象存储为局部变量来减少全局查找,因为访问局部变量的速度要比访问全局变量的速度更快些。

尽量减少循环次数

少一层循环,就能提高数倍性能。如果要对一个数组的每个元素进行多次操作,尽可能使用一次循环,多次操作,而不是多次循环,每次循环执行一次操作。尤其是在进行多个正则匹配的时候,尽可能合并正则表达式,在一次遍历中尽可能找到相应的匹配。

循环

switch

条件分支

将条件分支,按可能性顺序从高到低排列:可以减少解释器对条件的探测次数。

在同一条件 >2条件分支时,使用switch优于if:switch分支选择的效率高于if,在IE下尤为明显。4条分支的测试,IE下switch的执行时间约为if的一半。

使用三目运算符替代条件分支。

定时器

如果针对的是不断运行的代码,不应该使用setTimeout,而应该是用setInterval,因为setTimeout每一次都会初始化一个定时器,而setInterval只会在开始的时候初始化一个定时器。

创建对象的另外一个办法-不使用new

用做标记的变量尽可能使用布尔类型

直接用true和false做标记,不要使用数字或者字符串的1和0来做标记。

最新文章

  1. 用Redis Desktop Manager连接Redis
  2. JSPatch 遇上swift
  3. UI元素的相对自适应
  4. Android中使用sqlite笔记
  5. MongoDB update数据语法【转】
  6. SWTBOK实践测试系列(2) --您将提交测试开发者版本号打回来了?
  7. 如何将linux用在开发环境中的
  8. 为通过ClickOnce部署的应用程序进行数字签名
  9. 初学Python(八)——迭代
  10. LAMP第四部分mysql操作
  11. python 特殊方法实例
  12. property相关补充
  13. 【原创】Linux基础之挂载硬盘
  14. 最佳sql server 分页查询
  15. faster rcnn源码阅读笔记2
  16. 微信小程序框架与组件
  17. 对于两个初始时设置为Sensor的刚体,不会触发preSolve和postSolve
  18. [转]Java中BigDecimal的使用
  19. ffmpeg同步
  20. lucene教程--全文检索技术

热门文章

  1. Android 显示确认对话框
  2. DBCC--EXTENTINFO/IND/PAGE--显示数据页信息
  3. Backbone学习笔记 - View篇
  4. java之JIT(Just in time)
  5. window主机和centos主机之间相互传送文件
  6. CF 798B 渣渣题
  7. Android逆向-java代码基础
  8. webpack快速入门——如何安装webpack及注意事项
  9. python操作oracle数据库-查询
  10. swift 3.0 正则表达式查找/替换字符