前几天在一次技术面试中,被问到的问题之一是“如何优化 Javascript 代码”?
令我惊讶的是,他告诉我 while 循环通常比 for 循环更快。
这是真的吗?如果是,那是为什么?
最佳答案
您应该反驳说,负 while
循环会更快!请参阅:JavaScript loop performance - Why is to decrement the iterator toward 0 faster than incrementing .
在 while
与 for
中,这两个来源通过在不同浏览器中运行各种循环并以毫秒为单位比较结果,很好地记录了速度现象:
https://blogs.oracle.com/greimer/entry/best_way_to_code_a和:
http://www.stoimen.com/blog/2012/01/24/javascript-performance-for-vs-while/ .
从概念上讲,for
循环基本上是一个封装的 while
循环,专门用于递增或递减(根据某种顺序或某种长度在逻辑上进行)。例如,
for (let k = 0; k < 20; ++k) {…}
可以通过使其成为负 while 循环来加速:
var k = 20;
while (--k) {…}
正如您从上面链接中的测量结果中看到的那样,节省的时间确实加起来非常大。
关于JavaScript 性能 : While vs For Loops,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18640032/