Javascript中for循环的三种写法的效率对比
来源:互联网 发布:monkey软件 编辑:程序博客网 时间:2024/06/11 19:57
一共三种写法 如下:
for
(
var
i = 0; i < arr.length; i++)
for
(
var
i
in
arr)
for
(
var
i = 0, len = arr.length; i < len; i++)
先看下运行测试的界面:
再看下对应的三个结果,三种写法执行的效率是有很大不同的:
如此看来,执行效率最快的是第三种:
for
(
var
i = 0, len = arr.length; i < len; i++)
先声明变量,再进行循环判断,效率远比遍历数组高得多,也比循环取得数组长度的效率快得多!
下面是页面源代码:
<html>
<body>
<script type=
"text/javascript"
>
function
makeArr(num) {
var
arr = [];
for
(
var
i = 0; i<num; i++){
arr.push(
'abc'
);
}
arr.join(
''
);
return
arr;
}
var
num = 10000000;
function
function1() {
var
arr = makeArr(num);
var
start = (
new
Date()).valueOf();
var
count = 0;
for
(
var
i = 0; i < arr.length; i++) {
count++;
}
var
end = (
new
Date()).valueOf();
console.log(
'Count: '
+count+
' times'
);
console.log(
'Time spent: '
+(end - start));
}
function
function2() {
var
arr = makeArr(num);
var
start = (
new
Date()).valueOf();
var
count = 0;
for
(
var
i
in
arr) {
count++;
}
var
end = (
new
Date()).valueOf();
console.log(
'Count: '
+count+
' times'
);
console.log(
'Time spent: '
+(end - start));
}
function
function3() {
var
arr = makeArr(num);
var
start = (
new
Date()).valueOf();
var
count = 0;
for
(
var
i = 0, len = arr.length; i < len; i++) {
count++;
}
var
end = (
new
Date()).valueOf();
console.log(
'Count: '
+count+
' times'
);
console.log(
'Time spent: '
+(end - start));
}
</script>
for
(
var
i = 0; i < arr.length; i++) <br />
<button onClick=
"function1();"
>loop 1</button><br />
<p id=
"f1"
></p>
for
(
var
i
in
arr)<br />
<button onClick=
"function2();"
>loop 2</button><br />
<p id=
"f2"
></p>
for
(
var
i = 0, len = arr.length; i < len; i++)<br />
<button onClick=
"function3();"
>loop 3</button><br />
<p id=
"f3"
></p>
</body>
</html>
- Javascript中for循环的三种写法的效率对比【转载】
- Javascript中for循环的三种写法的效率对比
- JavaScript的for循环写法及效率
- js中的for循环 写法的效率对比
- javascript中for循环的几种写法与总结
- for循环中条件的三种写法
- javascript for循环的两种写法
- for循环的三种写法
- for循环写法带来的效率差异
- JAVA for循环的几种写法和效率
- 两重for循环的效率对比
- for和foreach循环的效率对比
- javascript中for、each以及foreach的效率对比
- for循环效率对比
- ArrayList与LinkedList的普通for循环遍历效率对比
- for循环的写法
- for循环的写法
- Java 中 for 循环的写法
- JFreeChart柱图代码
- 两个编译2.4与2.6内核模块
- activity堆栈结构
- Redhat实用命令~不断学习中
- memset 、memmcpy、memmove实现及其区别
- Javascript中for循环的三种写法的效率对比
- LAMP集成环境AppServ虚拟目录配置方法
- 【软件自动化测试-QTP实战技能 24】== QTP Code_ Useing Description Objects
- c# asp.net fileupload实例
- Apache 虚拟机简单配置
- SecureCRT软件介绍及linux常用命令
- java中Date与String的相互转化
- MySQL5.5源代码安装
- 各种加密算法的实例