• javascript循环性能大比拼


    在设计选择器,我就做了这方面的比较,只不过这次幸运遇到另一个测试程序,它覆盖面更广,测试类型更全面。最后发现自己在选择器中用了一个很慢的循环……囧。由于IE性能比较低下,原程序根本无法运行,因此我把它移到我的博客上来,汉化一下,并减少大量的测试个数(原程序测试个数为1000,我把IE的测试个数减少为300)。但即使这样,它还是弹出警告框问你是否中止循环,你继续按否,就能看到结果了。

    由上面的实验我们基本上可得出以下结论:

    1. while循环比for循环快。
    2. 倒序循环比顺序循环快。
    3. 缓存length属性比不缓存快。
    4. 请不要用arr[i]来判断是否中止循环。
    5. 请不要在循环内声明变量,用它来引用数组元素,若真的想省几个字符,请在循环外声明。
    6. 除非是循环对象的属性,请不要用for...in循环。
    7. 请不要用JavaScript 1.6 的forEach迭代器,特慢!如果一定要用forEach,那么建议自己打造一个。

    由于javascript与DOM紧密相连,操作DOM基本上是操作其中的元素节点,因此我觉得基本上以下几个循环就够用:

    //顺序
    for(var i=0,n=arr.length;i<n;i++){}
    
    var i = 0, n= arr.length; while (i<n) { i++; } 
    
    //倒序
    
    var i = arr.length; while (i--) { } 
    
    //遍历对象(不要用在数组上)
    var val;
    for(var key in obj){
         val = obj[key]
    }
    
  • 相关阅读:
    手机端上传图片及java后台接收和ajaxForm提交
    JEECG中datagrid方法自定义查询条件
    微信分享到朋友圈按钮 右上角提示
    Js获取后台集合List的值和下标的方法
    redis系列之数据库与缓存数据一致性解决方案
    替换{0}为指定的字符串(MessageFormat)
    java中对array数组的常用操作
    面试题-Java Web-网络通信
    你应该知道的JAVA面试题
    各大互联网公司java开发面试常问问题
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/1658824.html
Copyright © 2020-2023  润新知