JavaScript代码性能优化总结篇


Posted in Javascript onMay 15, 2016

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

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

尽量使用源生方法

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

避免全局查找

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

JavaScript代码性能优化总结篇

尽量减少循环次数

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

循环

JavaScript代码性能优化总结篇

switch

JavaScript代码性能优化总结篇

条件分支

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

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

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

JavaScript代码性能优化总结篇

定时器

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

JavaScript代码性能优化总结篇

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

JavaScript代码性能优化总结篇

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

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

Javascript 相关文章推荐
StringTemplate遇见jQuery冲突的解决方法
Sep 22 Javascript
js中更短的 Array 类型转换
Oct 30 Javascript
jquery 插件开发 extjs中的extend用法小结
Jan 04 Javascript
基于javascript实现图片懒加载
Jan 05 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
May 28 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
Aug 09 Javascript
JS实现鼠标移上去显示图片或微信二维码
Dec 14 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
Feb 26 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
Mar 04 Javascript
jQuery插件zTree实现获取一级节点数据的方法
Mar 08 Javascript
Angular实现下拉框模糊查询功能示例
Jan 03 Javascript
js实现全选和全不选
Jul 28 Javascript
window.onload绑定多个事件的两种解决方案
May 15 #Javascript
js仿淘宝和百度文库的评分功能
May 15 #Javascript
RequireJS使用注意细节
May 15 #Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
May 15 #Javascript
jQuery插件开发汇总
May 15 #Javascript
Javascript的无new构建实例详解
May 15 #Javascript
Javascript基础知识盲点总结之函数
May 15 #Javascript
You might like
fleaphp crud操作之findByField函数的使用方法
2011/04/23 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
ThinkPHP模型详解
2015/07/27 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
JavaScript中的事件处理
2008/01/16 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
jquery 使用简明教程
2014/03/05 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
python运行时间的几种方法
2016/06/17 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
Python 模拟购物车的实例讲解
2017/09/11 Python
Python实现FM算法解析
2019/06/18 Python
浅谈python3中input输入的使用
2019/08/02 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
python super用法及原理详解
2020/01/20 Python
python属于解释语言吗
2020/06/11 Python
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
简单叙述一下MYSQL的优化
2016/05/09 面试题
物业保安主管岗位职责
2013/12/25 职场文书
信息工作经验交流材料
2014/05/28 职场文书
信访维稳工作汇报
2014/10/27 职场文书
python小型的音频操作库mp3Play
2022/04/24 Python