前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript性能优化总结

JavaScript性能优化总结

作者头像
用户1428723
发布2020-08-06 15:44:13
4800
发布2020-08-06 15:44:13
举报
文章被收录于专栏:代码与画家代码与画家
  • +=运算符比+运算符效率高。
  • 数字转换成字符串
代码语言:javascript
复制
("" +) > String() > .toString() > new String()
  • 展开循环:当循环次数是确定的,消除循环并使用多次函数调用,虽然会让代码看起来不够高端,但是速度往往会更快。
  • 减值迭代:在循环中,减值要比增值效率高。
代码语言:javascript
复制
//增值迭代
for (var i = 0; i < 1000; i++) 
{    
    //TODO ...
}
//减值迭代较优
for (var i = 999; i >=0; i--) {
    //TODO ...
}
  • 使用switch优于if:在分支大于2并且允许使用switch的时候用switch的效率是很高的,因为switch是随机访问的。
  • 重复值:任何在多处用到的值都应该抽取为一个常量
代码语言:javascript
复制
var result = (obj.value.value2 + obj.value.value3)*obj.value.value1;
//较优的写法
var value = obj.value;
var result = (value.value2 + value.value3)*value.value1;
  • 遍历数组时,缓存数组长度
代码语言:javascript
复制
var len = arr.length;
for (var i = len - 1; i > 0; i--) {
    //TODO ...
}
  • 释放对象:
代码语言:javascript
复制
//对象
obj = null  
对象属性:delete obj.myproperty  
数组item:使用数组的splice方法释放数组中不用的item
  • 位运算较快:&、|、!、>>、<<
代码语言:javascript
复制
//按位与(&):判断一个数是奇数还是偶数
if (n & 1) {
   console.log("n是奇数");
} else {
   console.log("n是偶数");
}
//按位或(|):对浮点数向下求整
var num = 1.1 | 0; // 1
//左移(<<) 
var num = 2 << 1; // 4
//右移(>>)
var num = 64 >> 1; // 32
  • 巧用||和&&布尔运算符
代码语言:javascript
复制
if (myobj) {    
    doSomething(myobj);
}
//可以替换为:
myobj && doSomething(myobj);
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 代码与画家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档