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 相关文章推荐
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
Nov 11 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
Aug 13 Javascript
JQuery设置时间段下拉选择实例
Dec 30 Javascript
js实现表单多按钮提交action的处理方法
Oct 24 Javascript
基于vue 实现token验证的实例代码
Dec 14 Javascript
快速处理vue渲染前的显示问题
Mar 05 Javascript
JS实现的判断方法、变量是否存在功能示例
Mar 28 Javascript
AJAX在JQuery中的应用详解
Jan 30 jQuery
layui递归实现动态左侧菜单
Jul 26 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
Sep 16 Javascript
layui form表单提交后实现自动刷新
Oct 25 Javascript
在vue中封装方法以及多处引用该方法详解
Aug 14 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
博士208HAF收音机实习报告
2021/03/02 无线电
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
PHP与Perl之间知识点区别整理
2019/03/19 PHP
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
javascript中setTimeout的问题解决方法
2014/05/08 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
老生常谈js数据类型
2017/08/03 Javascript
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
Python制作词云图代码实例
2019/09/09 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
python函数超时自动退出的实操方法
2020/12/28 Python
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
建筑工地宣传标语
2014/06/18 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
2014年法务工作总结
2014/12/11 职场文书
小学生优秀评语
2014/12/29 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS