Javascript高性能代码(一)

分享说明:

1. 我先申明,我只是茫茫WEB前端开发人员中的一名普通的js程序员,我收集的和总结的代码未必就一定是性能最好的,可能会是性能最差的,希望看到这篇博客的朋友能够对我的错误进行批评指正。

2. 随着代码效率的提升,难免可读性降低,因此使用还是应该多多权衡。

 

谢谢!

 

一、条件判断类(以下的a都默认是boolean类型):

1. 常规代码

 

if(a) { 

     b = 'a是true';

} else {

    b = 'a是false';

}

2. 三元运算符

b = a ? 'a是true':'a是false';

3. 个人觉得性能最优代码

b = a && 'a是true' || 'a是false';

二、 数组的连接(a和b均为数组)

1. 使用concat方法

a.concat(b)

2. 使用循环push(性能应该最差,不写具体代码了,估计没有人这么干)

3. 使用栈方法push(此方法性能最高,若有兴趣可以测试看看)

Array.prototype.push.apply(a, b);

三、 对于确定类型并且确定值的判断(a和b均是js变量),比如:keydown事件中的keyCode的比较

1. 使用等号==(该表达式会默认对类型进行转换)

a == b

2. 使用全等运算符===(该表达式不会进行类型转换,直接看类型,若不同类型返回false,否则比较值是否相等)

a === b

四、 字符串连接(当一次会进行很多次循环操作的时候)

1. 使用+连接,由于每次都会在连接的时候创建另一个字符串对象,因此性能较低(目前某些浏览器进行了优化,但是对于IE浏览器,性能依旧很低);

 

var a = '', b = 10000; while( b-- > 0) { a += '我是第' + (10000 – b) + '次操作\r\n'; }

2. 在循环中将字符串添加到一个数组中,循环结束后使用数组的join方法,这样就不会在每次字符串连接的过程中创建另一个临时对象,因此性能显著提升。

 

var a = [], b = 10000;

while( b-- > 0) {

a.push('我是第', 10000-b, '次操作\r\n');

}

五、 取整运算,已知a为数字类型

1. 常规方法

Math.floor(a)

2. 两次取反(该方法必须先确定a为数字类型,否则运行时会报错,不会返回NaN)

~~a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值