js在不同操作符的效率比较

js在不同操作符的效率比较

JavaScript性能优化总结

  • +=运算符比+运算符效率高。

  • 数字转换成字符串

    ("" +) > String() > .toString() > new String()
    
  • 展开循环:当循环次数是确定的,消除循环并使用多次函数调用,虽然会让代码看起来不够高端,但是速度往往会更快。

  • 减值迭代:在循环中,减值要比增值效率高。

    //增值迭代
    for (var i = 0; i < 1000; i++) {
        //TODO ...
    }
    //减值迭代较优
    for (var i = 999; i >=0; i--) {
        //TODO ...
    }
    
  • 使用switch优于if:在分支大于2并且允许使用switch的时候用switch的效率是很高的,因为switch是随机访问的。

  • 重复值:任何在多处用到的值都应该抽取为一个常量

    var result = (obj.value.value2 + obj.value.value3)*obj.value.value1;
    //较优的写法
    var value = obj.value;
    var result = (value.value2 + value.value3)*value.value1;
    
  • 遍历数组时,缓存数组长度

    var len = arr.length;
    for (var i = len - 1; i > 0; i--) {
        //TODO ...
    }
    
  • 释放对象:

    //对象
    obj = null  
    对象属性:delete obj.myproperty  
    数组item:使用数组的splice方法释放数组中不用的item
    
  • 位运算较快:&、|、!、>>、<<

    //按位与(&):判断一个数是奇数还是偶数
    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
    
  • 巧用||和&&布尔运算符

    if (myobj) {
        doSomething(myobj);
    }
    //可以替换为:
    myobj && doSomething(myobj);
    
  • 避免与null进行比较

    if (obj == null) {
        //todo
    }
    //替换为
    if (!obj) {
        //todo
    }
    

关键词:js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值