<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'/>
<script src="../../scripts/jquery.js" type="text/javascript"></script>
</head>
<body>
<script>
$(function(){
count = 1000000;
time0 = new Date();
s1 = '';
for (i=0; i<count; i++) {
s1 += '<span>' + i + '</span>';
}
time1 = new Date();
a = [];
for (i=0; i<count; i++) {
a[i] = '<span>' + i + '</span>';
}
s2 = a.join('');
time2 = new Date();
i = count;
s3 = '';
while (i--) {
s3 += '<span>' + i + '</span>';
}
time3 = new Date();
i = count;
j = count-1;
s4 = '';
while (i--) {
s4 += '<span>' + (j-i) + '</span>';
}
time4 = new Date();
var out = '<p>' + time0.toJSON() + '</p>';
out += '<p>' + time1.toJSON() + '</p>';
out += '<p>' + time2.toJSON() + '</p>';
out += '<p>' + time3.toJSON() + '</p>';
out += '<p>' + time4.toJSON() + '</p>';
out += '<p>' + (time1.valueOf()-time0.valueOf()) + '</p>';
out += '<p>' + (time2.valueOf()-time1.valueOf()) + '</p>';
out += '<p>' + (time3.valueOf()-time2.valueOf()) + '</p>';
out += '<p>' + (time4.valueOf()-time3.valueOf()) + '</p>';
$(out).appendTo('body');
});
</script>
</body>
</html>
测试结果很有意思。看看号称最快的chrome 。有几个判断:
(1) while 对 for 并没有绝对的性能优势。
(2) firefox javascript engine 执行循环的效率是浏览器里最好的。