我无法掌握结果。我了解前两组输出(func01 1和func2 01-func2 05)。但是其余的令人困惑。

我的理解是,在func01()中第一次执行for循环之后,由于函数func02(),我到达2,然后到达3,但是在func01()中,我仍然


function func02(){
  for (i = 1; i <= 5; i++){
    document.write("&nbsp;&nbsp;func02 " + i + "<br>");
  }
}

function func01(){
  for(i = 1; i <= 3; i++){
    document.write("func01 " + i + "<br>");
    func02();
  }
}

func01();

最佳答案

这是我得到(格式化)的结果

func01 1
func02 1
func02 2
func02 3
func02 4
func02 5


调用func01,将i(全局变量)设置为1,并打印一行
然后func01调用func02
func02将i重置为1,然后为每个i=1,2,3,4,5打印一行。
然后控制返回到func01。它已经完成了第一次循环迭代。 i的值为5。然后将i(作为其全局变量)与3进行比较。看到5更大,循环结束。

10-06 00:49