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实战之品牌展示列表效果
Apr 10 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
Mar 14 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
Apr 26 Javascript
多个js与css文件的合并方法详细说明
Dec 26 Javascript
extjs中form与grid交互数据(record)的方法
Aug 29 Javascript
利用cookie记住背景颜色示例代码
Nov 04 Javascript
jquery获取多个checkbox的值异步提交给php
Jul 07 Javascript
jQuery 3 中的新增功能汇总介绍
Jun 12 Javascript
Node.js DES加密的简单实现
Jul 07 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
Nov 30 Javascript
React 使用browserHistory项目访问404问题解决
Jun 01 Javascript
layui实现左侧菜单点击右侧内容区显示
Jul 26 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中文字符串截取多种方法汇总
2016/10/06 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
js获取内联样式的方法
2015/01/27 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
浅谈Webpack自动化构建实践指南
2017/12/18 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
OpenLayers实现图层切换控件
2020/09/25 Javascript
Python中logging模块的用法实例
2014/09/29 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
详解Python_shutil模块
2019/03/15 Python
python2和python3在处理字符串上的区别详解
2019/05/29 Python
python 爬虫百度地图的信息界面的实现方法
2019/10/27 Python
Scrapy框架实现的登录网站操作示例
2020/02/06 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
Python os库常用操作代码汇总
2020/11/03 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
适用于所有创业者的创业计划书
2014/02/05 职场文书
2014年学校工作总结
2014/11/20 职场文书
客房服务员岗位职责
2015/02/09 职场文书
杭白菊导游词
2015/02/10 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
离婚被告代理词
2015/05/23 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
Oracle使用别名的好处
2022/04/19 Oracle