如果你不想用浏览器的js性能测试工具,可以用下面这个简单的函数测试一下(1毫秒一下的就测不出来了)
function testFn(fn,param){ var start = new Date().getTime(); fn(param); var end = new Date().getTime(); console.log(fn.name+"耗时:"+(end - start)+"毫秒"); //IE不支持fn.name }
下面就来测试一下
var arr = []; for(var i=0;i<10000;i++){ arr.push(i); } function getSumUseFor(arr){ var sum = 0; var len =arr.length; for(var i=0;i<len;i++){ sum+=arr[i]; } console.log(sum); } function getSumUseShift(arr){ var sum = 0; var len =arr.length; for(var i=0;i<len;i++){ sum+=arr.shift(); } console.log(sum); } testFn(getSumUseFor,arr); testFn(getSumUseShift,arr);
结果显示for的效率要明显高于shift()
================分割线===========================
1ms以内可以用console.time进行测试,代码如下
function testFn(fn,param){ console.time("small loop"); fn(param); console.timeEnd("small loop"); }
执行一段代码,结果如下:
console.time和console.timeEnd使用说明:
这两个函数通常一起使用,都只接受一个参数,这两个参数都是字符串,随便起,只要符合js语法即可,他会计算一段代码执行的间隔时间