为什么当我要求它运行十次时,它只会打印一次,而不是十次

时间:2020-09-30 23:30:37

标签: javascript function settimeout

我正在尝试编写一个在控制台中向控制台打个招呼的代码十次,但是由于某种原因它只能打印一次

function a(){console.log("hi")
setTimeout(function(){ }, 1);
}
a(10);

1 个答案:

答案 0 :(得分:3)

让我尝试为您提供详尽的答案。

使用:

a(10);

您实际上调用了一个名为a的函数,并且由于方括号之间存在某些内容,因此您还需要将值10传递给该函数。

现在,如果我们看一下您对函数a的定义:

function a(){
}

我们看到由于(),它不接受任何参数。

这意味着永远不会使用传递的值10。

此外,函数定义内是:

setTimeout(function(){ }, 1);
}

这实际上将function()的执行延迟了一毫秒-但同样地-函数内部没有任何内容。 总结一下:您只需调用一次a函数,而内部发生的唯一事情就是一次将hi登录到控制台。

现在我当然不知道您要完成什么,但是如果您只想在控制台上打印十次,那么简单的for循环就可以解决问题:

function a() {
  console.log("hi");
}

for (var i = 0; i < 10; i++) {
  a();
}

一个更高级的示例甚至可以使用传递给函数的值:

function a(param) {
  for (var i = 0; i < param; i++) {
    console.log("hi");
  }
}

a(10);