JavaScript代码性能优化总结(推荐)


Posted in Javascript onMay 16, 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代码性能优化总结(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
原生js 秒表实现代码
Jul 24 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
Sep 05 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
Dec 10 Javascript
Underscore.js 1.3.3 中文注释翻译说明
Jun 25 Javascript
JavaScript实现时间倒计时跳转(推荐)
Jun 28 Javascript
javascript鼠标滑过显示二级菜单特效
Nov 18 Javascript
原生JS实现匀速图片轮播动画
Oct 18 Javascript
简单实现js放大镜效果
Jul 24 Javascript
js 两数组去除重复数值的实例
Dec 06 Javascript
JavaScript 2018 中即将迎来的新功能
Sep 21 Javascript
微信小程序实现一个简单swiper代码实例
Dec 30 Javascript
js实现登录拖拽窗口
Feb 10 Javascript
AngularJS学习笔记之依赖注入详解
May 16 #Javascript
javascript表单事件处理方法详解
May 15 #Javascript
基于jquery实现ajax无刷新评论
Aug 19 #Javascript
JavaScript代码性能优化总结篇
May 15 #Javascript
window.onload绑定多个事件的两种解决方案
May 15 #Javascript
js仿淘宝和百度文库的评分功能
May 15 #Javascript
RequireJS使用注意细节
May 15 #Javascript
You might like
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
2013/06/25 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
vue iView 上传组件之手动上传功能
2018/03/16 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
[38:21]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS LGD-CDEC
2014/05/22 DOTA
Python用threading实现多线程详解
2017/02/03 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
python实现大转盘抽奖效果
2019/01/22 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
python3访问字典里的值实例方法
2020/11/18 Python
HTML5通用接口详解
2016/06/12 HTML / CSS
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
建筑工程专业毕业生自荐信
2013/10/19 职场文书
QA工程师岗位职责
2013/11/20 职场文书
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
个人贷款承诺书
2014/03/28 职场文书
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL