我试图理解这个基准测试:
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 更快?