为什么这个简单的脚本永远不会结束

Dra*_*zah 0 javascript function settimeout

我有一个简单的JavaScript函数,如下所示:

countDown();

function countDown() {

  var count = 10;

  document.write(count);

  if (count > 0) {
    count = count-1;;
    setTimeout(countDown, 1000);
  }

}
Run Code Online (Sandbox Code Playgroud)

为什么变量count永远不会改变?这个功能永远不会结束 ..

小智 6

因为countDown()函数每次调用时都将变量count设置为10.稍微改变范围将使函数的行为与您可能的预期一致.

var count = 10;

countDown();

function countDown() {

  document.write(count);

  if (count > 0) {
    count = count-1;;
    setTimeout(countDown, 1000);
  }

}
Run Code Online (Sandbox Code Playgroud)