今天针对不同的数组判定方式在chrome上做了一个效率的对比,结果如下:
其代码如下:
var ret; var o = [1,2,3]; var tostr = {}.tostring; var array = {}; array[[object array]] = array; console.log(各种判断是否数组的速度比较!) console.log(方法一:array.isarray(o)); console.time(first); for (var i=0;i<10000;i++){ ret = array.isarray(o); } console.timeend(first); console.log(ret); console.log(方法二:o instanceof array); console.time(second); for (var i=0;i<10000;i++){ ret = o instanceof array; } console.timeend(second); console.log(ret); console.log(方法三:o.constructor == array); console.time(thirth); for (var i=0;i<10000;i++){ ret = o.constructor == array; } console.timeend(thirth); console.log(ret); console.log(方法四:array[tostr.call(o)] == 'array'); console.time(forth); for (var i=0;i<10000;i++){ ret = array[tostr.call(o)] == array; } console.timeend(forth); console.log(ret);
