我不明白为什么这个函数会在应该调用 return 语句之后运行剩余的代码:
function func(i) {
while (i >= 0) {
if (i < 0) {
return;
}
document.write("inside loop, i is " + i);
document.write("</br>");
i--;
} //end of while
document.write("end of function, i is " + i);
document.write("</br>");
}
func(2);
输出:
inside loop, i is 2;
inside loop, i is 1;
inside loop, i is 0;
end of function, i is -1;
我期待:
inside loop, i is 2;
inside loop, i is 1;
inside loop, i is 0;
如果应该在返回之前调用返回,为什么会写入“函数结束,i 是 -1”这一行?
如果我用 while(true) 替换 while(i >= 0) 函数会给出预期的输出(没有最后一个 document.write)。为什么?
如果我将 while 循环后的代码替换为:
return document.write("end of function, i is " + i);
document.write("end 2 of function, i is " + i);
不执行最后一行代码(函数的末尾 2, i is )。为什么代码在第一次返回后继续执行而不是在第二次返回之后?
如果我从 if 语句中取出 return 函数在调用 return 时停止:
while (i >= 0) {
document.write("inside loop, i is " + i);
document.write("</br>");
i--;
return;
}
输出是:
inside loop, i is 2
为什么在这种情况下最后一个 document.write ("end of function, i is ") 不执行?
慕丝7291255
呼唤远方
相关分类