我正在尝试编写一个在控制台中向控制台打个招呼的代码十次,但是由于某种原因它只能打印一次
function a(){console.log("hi")
setTimeout(function(){ }, 1);
}
a(10);
答案 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);