我试图理解这个基准测试:
http://jsperf.com/for-vs-jq-inarray
该测试表明,在 iPad 上,jQuery 选项运行得更快。我在 iPad 上运行它,结果证明了这一点。但为什么?!
这是jQuery inArray:
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;
}
它本质上与原生 javascript 示例相同,只是这次添加了 jQuery 膨胀。iPad怎么可能跑得这么快?
我缩小并优化了 2 个原生样本并重新运行了测试,但变化可以忽略不计。
在这种情况下,为什么 jQuery 比 iPad 上的原生 javascript 更快?