document.getElementsByTagName('a').item(0)
和
document.getElementsByTagName('a')[0]
会返回相同的结果......
前者比后者更快吗?
答案 0 :(得分:5)
自制性能测试:http://jsfiddle.net/438jh/2/
差异似乎可以忽略不计。第二种方法在大多数情况下表现更好,但是如果你看一下循环执行的频率,那就不重要了。
<强>铬:强>
答案 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);
}