Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 了解jsperf.com基准_Jquery_Arrays - Fatal编程技术网

Jquery 了解jsperf.com基准

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 ); }

我试图理解这个基准:

这个测试表明,在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;
}
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()
函数(存在),它将使用该函数,而不使用自己的
来实现
循环。