首页 > 解决方案 > 为什么当我要求它运行十次时它只打印一次而不是十次

问题描述

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

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

标签: javascriptfunctionsettimeout

解决方案


让我试着给你一个复杂的答案。

和:

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);


推荐阅读