推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
alexrezit

Mozilla 的标准说 getElementsByTagName 和 getElementsByClassName 返回的都是 NodeList, 但是前者可以用 for-in 遍历后者却不行, 这是为什么呢?

  •  
  •   alexrezit · Jan 27, 2013 · 4528 views
    This topic created in 4880 days ago, the information mentioned may be changed or developed.
    ref: https://developer.mozilla.org/en-US/docs/DOM/NodeList

    后者只能用 for loop 或者 forEach.
    11 replies    1970-01-01 08:00:00 +08:00
    NemoAlex
        1
    NemoAlex  
       Jan 27, 2013
    都是不可以用 for in 来遍历的
    est
        2
    est  
       Jan 27, 2013
    for in 就不是用来遍历list的。。。是用来便利object的
    alexrezit
        3
    alexrezit  
    OP
       Jan 27, 2013
    @NemoAlex
    试了一下果然是我搞错了. 谢谢.
    @est
    我太菜了... > <

    附上找到的性能对比图:









    NemoAlex
        4
    NemoAlex  
       Jan 27, 2013   ❤️ 1
    @alexrezit 前端的话,其实不太需要关注性能,各种浏览器内核做的优化都不同
    一般大多数人是用 for 循环:
    for (var i=0; i < Things.length; i++) { Things[i] };
    也有人喜欢反过来遍历:
    for (var i = Things.length - 1; i >= 0; i--) { Things[i] };
    当然 forEach 是最方便的:
    Things.forEach(function(thing){ thing });
    这个在低版本浏览器上会有问题,一般前端框架会解决
    所以如果是用框架的话,就放心大胆地用 forEach 吧
    alexrezit
        5
    alexrezit  
    OP
       Jan 27, 2013
    @NemoAlex
    这个... 浏览器版本啥的还真不用担心. 我这水平也做不了前端, 偶尔写写 Safari 插件给自己用.
    cyberscorpio
        6
    cyberscorpio  
       Jan 27, 2013
    @NemoAlex

    forEach 在 firefox 上比自己 for () 遍历要慢一个数量级……
    limon
        7
    limon  
       Jan 28, 2013 via iPad
    经验是但凡能用for,尽量用for
    toothpaste
        8
    toothpaste  
       Jan 28, 2013
    以前我以为for in 与 for 是一样的,就贪图方便一直用for in,就一直拿到奇怪的东西...
    leohxj
        9
    leohxj  
       May 19, 2013
    @alexrezit 你这性能对比,是怎么做的?
    alexrezit
        10
    alexrezit  
    OP
       May 19, 2013
    @leohxj
    搜索出来的... = =
    我可没耐心搞那么多个系统那么多个浏览器做测试.
    leohxj
        11
    leohxj  
       May 19, 2013
    @alexrezit :) 善用搜索,也是好技能。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   938 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 20:29 · PVG 04:29 · LAX 13:29 · JFK 16:29
    ♥ Do have faith in what you're doing.