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 jqgrid 对含特殊字符json 数据的 Java 处理方法
Jan 01 Javascript
ie支持function.bind()方法实现代码
Dec 27 Javascript
Jquery实现仿新浪微博获取文本框能输入的字数代码
Feb 22 Javascript
使用POST方式弹出窗口的两种方法示例介绍
Jan 29 Javascript
javascript实现简单的分页特效
Aug 12 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
Aug 24 Javascript
基于jquery实现省市区三级联动效果
Dec 25 Javascript
js编写一个简单的产品放大效果代码
Jun 27 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
Nov 27 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
Sep 20 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
Mar 03 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
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
PHP仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
jQuery ready函数滥用分析
2011/02/16 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
js实现简单的验证码
2015/12/25 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
jquery编写日期选择器
2017/03/16 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
2017/08/09 jQuery
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
vue mounted 调用两次的完美解决办法
2018/10/29 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
JS 5种遍历对象的方式
2020/06/16 Javascript
Python原始字符串(raw strings)用法实例
2014/10/13 Python
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
对python3新增的byte类型详解
2018/12/04 Python
django 环境变量配置过程详解
2019/08/06 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
python3 配置logging日志类的操作
2020/04/08 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
法律专业实习鉴定
2013/12/22 职场文书
超市客服工作职责
2014/06/11 职场文书
会议主持人开场白台词
2015/05/28 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
JavaScript设计模式之原型模式详情
2022/06/21 Javascript