私はこのベンチマークを理解しようとしています:
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;
}
今回は jQuery の肥大化が追加されていることを除けば、基本的にはネイティブ JavaScript サンプルと同じです。iPad がこれほど高速に動作するのはどうしてでしょうか?
2 つのネイティブ サンプルを縮小および最適化し、テストを再実行しましたが、変更はほとんどありませんでした。
この場合、jQuery が iPad のネイティブ JavaScript よりも速いのはなぜですか?