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 相关文章推荐
JS 用6N±1法求素数 实例教程
Oct 20 Javascript
bootstrap table 服务器端分页例子分享
Feb 10 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
Mar 11 Javascript
JS中常用的正则表达式
Sep 29 Javascript
jQuery排序插件tableSorter使用方法
Feb 10 Javascript
vue一步步实现alert功能
Jul 05 Javascript
使用vue-router设置每个页面的title方法
Feb 11 Javascript
在vue项目中,使用axios跨域处理
Mar 07 Javascript
微信小程序中button去除默认的边框实例代码
Aug 01 Javascript
p5.js绘制旋转的正方形
Oct 23 Javascript
vue 实现tab切换保持数据状态
Jul 21 Javascript
vue解决跨域问题(推荐)
Nov 10 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中实现记住密码自动登录的代码
2011/03/02 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
浅析PHP开发规范
2018/02/05 PHP
激活 ActiveX 控件
2006/10/09 Javascript
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
原生js实现分页效果
2020/09/23 Javascript
python处理圆角图片、圆形图片的例子
2014/04/25 Python
Python中itertools模块用法详解
2014/09/25 Python
复习Python中的字符串知识点
2015/04/14 Python
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
虚拟环境及venv和virtualenv的区别说明
2021/02/05 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
Mytheresa英国官网:拥有160多个奢侈品品牌
2016/10/09 全球购物
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
个人求职简历的自我评价
2013/10/19 职场文书
学生评语大全
2014/04/18 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书