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 相关文章推荐
Add a Picture to a Microsoft Word Document
Jun 15 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
Apr 15 Javascript
js 数值转换为3位逗号分隔的示例代码
Feb 19 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
Aug 24 Javascript
jQuery中hover与mouseover和mouseout的区别分析
Dec 24 Javascript
RequireJS使用注意细节
May 15 Javascript
xcode中获取js文件的路径方法(推荐)
Nov 05 Javascript
JS根据生日月份和日期计算星座的简单实现方法
Nov 24 Javascript
js实现键盘自动打字效果
Dec 23 Javascript
微信小程序页面间通信的5种方式
Mar 31 Javascript
js事件委托和事件代理案例分享
Jul 25 Javascript
了解javascript中的Dom操作
May 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
如何开始收听短波广播
2021/03/01 无线电
PHP 第二节 数据类型之数组
2012/04/28 PHP
PHP文章按日期(月日)SQL归档语句
2012/11/29 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
Jquery 弹出层插件实现代码
2009/10/24 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
python基于pyDes库实现des加密的方法
2017/04/29 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
启动Atom并运行python文件的步骤
2018/11/09 Python
Python下简易的单例模式详解
2019/04/08 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
电焊工工作岗位职责
2014/02/06 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers