【发布时间】:2021-09-18 04:06:33
【问题描述】:
假设while(true) 将与for(...) 循环同时中断,为什么for(...) 更快?
根据jsbench,使用while(true)会慢7%
这是我在 jsbench 中使用的代码:
使用while(true) 循环
/* generate array */
const arr = []
for(let i = 0; i < 1000; i++){
arr.push(i)
}
let i = 0
while(true){
if(arr[i] >= 900){
return;
}
i++
}
使用for(...) 循环:
/* generate array */
const arr = []
for(let i = 0; i < 1000; i++){
arr.push(i)
}
for(let i = 0; i < arr.length; i++){
if(arr[i] >= 900){
return;
}
}
【问题讨论】:
-
JavaScript 引擎经过优化,可以运行标准的
for循环。另请注意,它们并不完全等效。当数组中没有符合条件的值时,while循环将永远运行。for循环将结束。 -
@trincot 有文章解释这个吗?
-
这能回答你的问题吗? Javascript Performance: While vs For Loops
标签: javascript