Jquery 了解jsperf.com基准
我试图理解这个基准: 这个测试表明,在iPad上,jQuery选项运行得更快。我在我的iPad上运行了它,结果证明了这一点。但为什么 以下是jQuery inArray:Jquery 了解jsperf.com基准,jquery,arrays,Jquery,Arrays,我试图理解这个基准: 这个测试表明,在iPad上,jQuery选项运行得更快。我在我的iPad上运行了它,结果证明了这一点。但为什么 以下是jQuery inArray: inArray: function( elem, arr, i ) { var len; if ( arr ) { if ( core_indexOf ) { return core_indexOf.call( arr, elem, i ); }
inArray: function( elem, arr, i ) { var len;
if ( arr ) {
if ( core_indexOf ) {
return core_indexOf.call( arr, elem, i );
}
len = arr.length;
i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
for ( ; i < len; i++ ) {
// Skip accessing in sparse arrays
if ( i in arr && arr[ i ] === elem ) {
return i;
}
}
}
return -1;
}
inArray:function(elem,arr,i){var len;
如果(arr){
if(核心指数){
返回核心索引调用(arr,elem,i);
}
len=arr.长度;
i=i?i<0?数学最大值(0,len+i):i:0;
对于(;i
它本质上与本机javascript示例相同,只是这次添加了jQuery膨胀。iPad怎么可能运行得这么快
我缩小并优化了2个本地样本,重新运行测试,但变化很小
在这种情况下,为什么jQuery比iPad上的本机javascript更快?如果你查看性能数字的绝对值,也许你应该问为什么iPad运行
for
循环如此缓慢。如果是这样,那么jQuery也同样糟糕。iPad是否在数组对象上实现了inArray方法?如果是这样,jQuery将使用它,并且它可能比jQuery等价物优化得多。不,它不会为循环运行相同的。如果有一个本机的indexOf()
函数(存在),它将使用该函数,而不使用自己的来实现
循环。