美文网首页
对于循环的优化

对于循环的优化

作者: AAA前端 | 来源:发表于2019-10-15 11:46 被阅读0次
    • 对于循环基本写法如下:
    var item = [0, 1, 2, 3, 4, 5]
    
    for (var i = 0; i < item.length; i++) {
      // do something
    }
    
    var j = 0;
    while (j < item.length) {
      // do something
    }
    
    var k = 0;
    do {
      // do something
    } while (k < item.length)
    
    
    • 这种循环每次都会重新查找item.length,这样做很耗时,由于该值在循环运行过程中并没有改变,因此产生了不必要的性能损失; 可以初始获取数组长度,减少查询长度的次数;
    var item = [0, 1, 2, 3, 4, 5]
    
    for (var i = 0, len = item.length; i < len; i++) {
      // do something
    }
    
    var j = 0,
      count = item.length;
    while (j < count) {
      // do something
    }
    
    var k = 0,
      num = item.length;
    do {
      // do something
    } while (k < num)
    
    
    • 目前在大多数浏览器中能节省25%的运行时间了。
    • 我们还可以采用颠倒数组顺序来提高循环性能。通常,数组项的顺序与所要执行的任务无关,隐藏从最后一项开始向前处理是个备选方案;
    var item = [0, 1, 2, 3, 4, 5]
    
    for (var i = item.length; i--;) {
      // do something
    }
    
    var j = item.length;
    while (j--) {
      // do something
    }
    
    var k = item.length;
    do {
      // do something
    } while (k--)
    
    
    • 现在每个控制条件只是简单地与零比较。控制条件与true比较时,任何非零会自动转换为true,而零值等同于false。实际上,控制条件已经从两次比较减少到一次比较。进一步提高了循环速度。

    参考: 高性能 javaScript

    相关文章

      网友评论

          本文标题:对于循环的优化

          本文链接:https://www.haomeiwen.com/subject/usajmctx.html