list.item(0)vs list [0]

时间:2010-09-29 18:18:38

标签: javascript performance

document.getElementsByTagName('a').item(0)

document.getElementsByTagName('a')[0]

会返回相同的结果......

前者比后者更快吗?

3 个答案:

答案 0 :(得分:5)

自制性能测试:http://jsfiddle.net/438jh/2/

差异似乎可以忽略不计。第二种方法在大多数情况下表现更好,但是如果你看一下循环执行的频率,那就不重要了。

<强>铬:

  1. 方法:~260ms
  2. 方法:~170ms

答案 1 :(得分:0)

item function是NodeList DOM对象的成员。 NodeLists是类似数组的,但它们不是真正的数组(例如:它们是实时的,只读的,缺少数组函数)。

性能差异应该可以忽略不计。

答案 2 :(得分:0)

对于更实际的示例,此技术具有最佳性能。看看YAHOO的Nicholas Zakas的作品!更多例子:

var cachedDOMquery = Array.prototype.slice.apply(document.getElementsByTagName('a')),
i = cachedDOMquery.length,
item;
while(i--){
    item = cachedDOMquery[i];
    alert(item.href);
}