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 相关文章推荐
获取DOM对象的几种扩展及简写
Oct 09 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
Sep 14 Javascript
jQuery选择器中含有空格的使用示例及注意事项
Aug 25 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
Jun 29 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
Sep 14 Javascript
精通JavaScript的this关键字
May 28 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
Jun 22 Javascript
深入解析Javascript闭包的功能及实现方法
Jul 10 Javascript
利用Node.js检测端口是否被占用的方法
Dec 07 Javascript
vue2.0 根据状态值进行样式的改变展示方法
Mar 13 Javascript
JS同步、异步、延迟加载的方法
May 05 Javascript
Layui弹出层 加载 做编辑页面的方法
Sep 16 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
星际流派综述
2020/03/04 星际争霸
WordPress中编写自定义存储字段的相关PHP函数解析
2015/12/25 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
phpmyadmin下载、安装、配置教程
2017/05/16 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
图片翻转效果具体实现代码
2014/01/09 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
2017/05/13 jQuery
基于ajax和jsonp的原生封装(实例)
2017/10/16 Javascript
js实现动态添加上传文件页面
2018/10/22 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
PyCharm 在Windows的有用快捷键详解
2020/04/07 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
历史学专业个人的自我评价
2013/10/13 职场文书
离职报告范文
2014/11/04 职场文书
秦兵马俑导游词
2015/02/02 职场文书
化验员岗位职责
2015/02/14 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python