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 相关文章推荐
js 弹出框 替代浏览器的弹出框
Oct 29 Javascript
基于JavaScript实现移除(删除)数组中指定元素
Jan 04 Javascript
JavaScript实现斗地主游戏的思路
Feb 29 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
Nov 02 Javascript
javascript垃圾收集机制的原理分析
Dec 08 Javascript
js实现导航吸顶效果
Feb 24 Javascript
对layui初始化列表的CheckBox属性详解
Sep 13 Javascript
Node.js API详解之 timer模块用法实例分析
May 07 Javascript
JS加载解析Markdown文档过程详解
May 19 Javascript
JS实现鼠标按下拖拽效果
Jul 23 Javascript
vue组件开发之tab切换组件使用详解
Aug 21 Javascript
js实现简易ATM功能
Oct 27 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
PHP获得用户使用的代理服务器ip即真实ip
2006/12/31 PHP
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
php实现复制移动文件的方法
2015/07/29 PHP
JavaScript XML操作 封装类
2009/07/01 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
js 窗口抖动示例
2013/09/04 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
nodejs使用node-xlsx生成excel的方法示例
2019/08/22 NodeJs
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
python求最大值最小值方法总结
2019/06/25 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
在python中求分布函数相关的包实例
2020/04/15 Python
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
罗技美国官网:Logitech美国
2020/01/22 全球购物
同学会邀请书大全
2014/01/12 职场文书
水电维修专业推荐信
2014/09/06 职场文书
放飞理想主题班会
2015/08/14 职场文书
2019餐饮行业创业计划书!
2019/06/27 职场文书
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android