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 相关文章推荐
用javascript实现自定义标签
May 08 Javascript
js传参数受特殊字符影响错误的解决方法
Oct 21 Javascript
浅析JavaScript中的常用算法与函数
Nov 21 Javascript
jquery中获取元素里某一特定子元素的代码
Dec 02 Javascript
详解AngularJS Filter(过滤器)用法
Dec 28 Javascript
Javascript基础_嵌入图像的简单实现
Jun 14 Javascript
微信小程序 教程之模板
Oct 18 Javascript
javascript 中null和undefined区分和比较
Apr 19 Javascript
详解如何在angular2中获取节点
Nov 23 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
Sep 15 Javascript
小程序实现人脸识别功能(百度ai)
Dec 23 Javascript
JavaScript中的this妙用实例分析
May 09 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
组合算法的PHP解答方法
2012/02/04 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
微信小程序之多文件下载的简单封装示例
2018/01/29 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
Python实现二分法算法实例
2015/02/02 Python
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
Python fileinput模块使用实例
2015/05/28 Python
12步教你理解Python装饰器
2016/02/25 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
kali中python版本的切换方法
2019/07/11 Python
Django中Middleware中的函数详解
2019/07/18 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
python urllib和urllib3知识点总结
2021/02/08 Python
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
2015最新民情日记范文
2015/06/26 职场文书
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python