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 相关文章推荐
表单的一些基本用法与技巧
Jul 15 Javascript
使用户点击后退按钮使效三行代码
Jul 07 Javascript
Jquery submit()无法提交问题
Apr 21 Javascript
Json序列化和反序列化方法解析
Dec 19 Javascript
JavaScript中数据结构与算法(一):栈
Jun 19 Javascript
JS访问SWF的函数用法实例
Jul 01 Javascript
JavaScript函数内部属性和函数方法实例详解
Mar 17 Javascript
原生js仿jquery实现对Ajax的封装
Oct 04 Javascript
vuejs选中当前样式active的实例
Aug 22 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
Sep 06 Javascript
JS使用对象的defineProperty进行变量监控操作示例
Feb 02 Javascript
vue+openlayers绘制省市边界线
Dec 24 Vue.js
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 程序员也要学会使用“异常”
2009/06/16 PHP
php 读取文件乱码问题
2010/02/20 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
php 注释规范
2012/03/29 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
vue.js的安装方法
2017/05/12 Javascript
关于定制FileField中的上传文件名称问题
2017/08/22 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
python实现感知器算法(批处理)
2019/01/18 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
Python3分析处理声音数据的例子
2019/08/27 Python
python爬虫可以爬什么
2020/06/16 Python
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
教育实习生的自我评价分享
2013/11/21 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
工程力学专业自荐信范文
2014/03/17 职场文书
交警个人先进事迹材料
2014/05/11 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
大学生党员个人总结
2015/02/13 职场文书
交通事故责任认定书
2015/08/06 职场文书
团支部书记竞选稿
2015/11/21 职场文书