在 JavaScript 中执行循环之前检查数组的长度

2 javascript arrays loops

在执行循环之前检查数组的长度是否不等于 0 是否有意义?

var arr = [1,2,3];
if (arr.length !== 0) {
    // do loop
}
Run Code Online (Sandbox Code Playgroud)

RB.*_*RB. 5

在一般情况下,这是没有意义的。对于 foreach、for 或 while 循环,循环条件无论如何都会阻止循环执行,因此您的检查是多余的。

var arr = [];
for (var loopCounter = 0; loopCounter < arr.length; loopCounter++)
{
   // This loop will never be entered.
} 

foreach (var element in arr)
{
   // This loop will never be entered.
}

var loopCounter = 0;
while (loopCounter < arr.length)
{
   // This loop will never be entered.
   loopCounter++;
} 
Run Code Online (Sandbox Code Playgroud)

然而,唯一重要的是当您使用 do...while 循环时。在这种情况下,循环执行,然后检查循环条件(当为时已晚时)。在这种情况下,您的代码可能会在循环内引发异常,如以下代码所示。

var arr = [];
var loopCounter = 0;
do 
{ 
   someMethod(arr[loopCounter]); // This will throw an error
   loopCounter++;
} 
while(loopCounter < arr.length);
Run Code Online (Sandbox Code Playgroud)