【发布时间】:2017-11-12 20:22:56
【问题描述】:
while 循环
测试条件,如果为真,则执行代码
do..while 循环
第一次执行。然后测试并执行。
所以while 和do..while 之间的区别在于,以编程方式在while 中,比在while 中执行的测试更多
那是
如果一个从 1 到 50 的循环在 while 循环中执行一个语句,它将有 51 个测试(50 个真和 1 个假),该语句将执行 50 次。
同样
如果在 do..while 循环中执行一个从 1 到 50 的循环,其中只有一条语句,它将进行 50 次测试(不进行第一次测试),该语句将执行 50 次。
因此,只需减少一项测试/检查。就是这样。
但是当我测试执行所花费的时间时,它显示出很大的差异。
function whileFn() {
var i = 0;
while (i < 10) {
document.write(i);
i++;
}
}
function doWhileFn() {
var i = 0;
do {
document.write(i);
i++;
} while (i < 10)
}
console.time('whileFn');
whileFn();
console.timeEnd('whileFn');
document.write('<br/>');
console.time('doWhileFn');
doWhileFn();
console.timeEnd('doWhileFn');
如您所见 on the image 和代码示例,while 循环耗时 15 毫秒,而 do while 仅耗时 5 毫秒。
这种巨大差异背后的原因是什么?
测试 10 个元素
按照@pid 的建议进行更新
测试 1000
1 次额外测试花费了 23 毫秒
测试 10000
1 次额外测试多出 397.91 毫秒
进行测试
铬 (58.0.3029.110)
边缘 14
【问题讨论】:
标签: javascript while-loop do-while execution-time