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 嵌套的函数(作用域链)
Mar 15 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
Apr 07 Javascript
一个JS的日期格式化算法示例
Jul 31 Javascript
eclipse如何忽略js文件报错(附图)
Oct 30 Javascript
javascript中interval与setTimeOut的区别示例介绍
Mar 14 Javascript
JavaScript动态修改网页元素内容的方法
Mar 21 Javascript
一个php+js实时显示时间问题
Oct 12 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
Jun 21 Javascript
Bootstrap popover用法详解
Dec 22 Javascript
微信小程序 按钮滑动的实现方法
Sep 27 Javascript
利用Angular7开发一个Radio组件的全过程
Jul 11 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
Dec 26 Vue.js
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中foreach/in_array的使用
2015/11/02 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
JavaScript动态添加style节点的方法
2015/06/09 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
python 接口_从协议到抽象基类详解
2017/08/24 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
python实现树形打印目录结构
2018/03/29 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
2019/07/03 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
Python是怎样处理json模块的
2020/07/16 Python
python线程里哪种模块比较适合
2020/08/02 Python
python 实现数据库中数据添加、查询与更新的示例代码
2020/12/07 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
车贷收入证明范本
2014/01/09 职场文书
毕业留言寄语大全
2014/04/10 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
人事局接收函
2015/01/31 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
SpringAop日志找不到方法的处理
2021/06/21 Java/Android