为什么这不会导致无限循环?

-6 javascript arrays for-loop infinite-loop

来自Eloquent JavaScript.由于"i"从-1开始并在每个循环中减1,因此永远不会达到结束条件"i> = 0".然而代码有效.

function arrayToList(array) {
  var list = null;
  for (var i = array.length - 1; i >= 0; i--)
    list = {value: array[i], rest: list};
  return list;
}

console.log(arrayToList([]));
//null
Run Code Online (Sandbox Code Playgroud)

Amy*_*Amy 14

你的分析是错误的.如果array为空,i则以-1开始,这将使条件失败i >= 0,因此循环永远不会执行.必须满足条件才能使循环继续,而不是循环退出.