Цикл while вычисляет выражение в круглых скобках каждый раз в цикле.Когда это выражение достигнет значения Falsey, цикл остановится.
Примеры значений Falsey:
false
0
undefined
NaN
null
""
В этом случае значение i
будет уменьшаться каждый раз прицикл, и когда он достигает значения 0
, цикл останавливается.Поскольку это пост-декрементный оператор, значение выражения проверяется перед декрементом.Это означает, что внутренний цикл будет видеть значения i
от someArray.length - 1
до 0
(включительно), которые являются всеми индексами этого массива.
Ваш пример кода:
var i = someArray.length;
while (i--) {
console.log(someArray[i]);
}
создает такой же вывод, как этот:
for (var i = someArray.length - 1; i >= 0; i--) {
console.log(someArray[i]);
}