最佳答案
这些主要是一些事情,我一直想知道,也许有人可以给我一些更多的见解,我会分享我注意到到目前为止!
我一直在想的第一件事... 有没有什么不同的好处或者理由来使用:
$('element').each(function (i, el) { });
对抗..
$.each($('element'), function (i, el) { });
看着 jQuery 文档,我看不出这两者之间有什么联系或者有什么原因(也许你知道一个实例或者其他一些可以做的事情。
但更重要的是,我关心的是 速度在这里
// As opposed to $.each() looping through a jQuery object
// -- 8x faster
for (var i = 0, $('.whatever').length; i < len; i++) {
$('.whatever')[i] // do stuff
}
如果你看看这个 这里的 jsFiddle DEMO,你会看到速度上的差异基本上与他们中的任何一个相当,但更重要的是,我觉得我应该 一直都是使用 for()循环..。
我只是单元测试(在5个不同的场景函数中循环5万次) ,只是在一堆列表项中循环,然后设置一个 data-newAttr,没有什么特别的。
问: 我想我最大的问题是,为什么 一直都是在迭代一个对象时不使用 for 循环? ?使用 $。每个人?即使在遍历 jQuery 对象时,您也总是使用 for ()循环吗?
Function type: Execution Time:
_testArea.each() + $(this) 1947 <-- using $(this) slows it down tremendously
$.each() + $(this) 1940
_testArea.each() + el(plain JS) 458 <-- using the Element speeds things up
$.each() + el(plain JS) 452
for() loop + plainJS[0] iteration 236 <-- over 8x faster
只是我的两分钱。 :)