#javascript #function #settimeout
#javascript #функция #settimeout
Вопрос:
я пытаюсь создать код, который говорит привет в консоли консоли десять раз, но по какой-то причине он печатается только один раз
function a(){console.log("hi")
setTimeout(function(){ }, 1);
}
a(10);
Комментарии:
1. Что заставляет вас думать, что он будет печатать десять раз? Можете ли вы объяснить свои рассуждения?
Ответ №1:
Позвольте мне попытаться дать вам сложный ответ.
С:
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);
Комментарии:
1. Нет проблем @codesforkids — я рад, если смогу помочь!