在 JavaScript 中,我最近发现反向 while 循环速度更快。
我见过这种形式的:
var i = someArray.length;
while (i--) {
console.log(someArray[i]);
}
我对此进行了测试,它在遍历整个数组后就停止了。
一旦完成数组,它如何知道何时停止?
最佳答案
while 循环每次都对括号内的表达式求值。当该表达式变为假值时,循环将停止。
虚假值的例子是:
false
0
undefined
NaN
null
""
在这种情况下,i
的值将在每次循环中递减,当它达到 0
的值时,循环将停止。因为它是后递减运算符,所以在递减之前检查表达式的值。这意味着内部循环将看到从 someArray.length - 1
到 0
(含)的 i
的值,这些都是数组。
您的代码示例:
var i = someArray.length;
while (i--) {
console.log(someArray[i]);
}
创建与此相同的输出:
for (var i = someArray.length - 1; i >= 0; i--) {
console.log(someArray[i]);
}
关于javascript - 反向 while 循环如何知道何时在 JavaScript 中停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9438902/