Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помощь с таймером (https://javascript.ru/forum/misc/72033-pomoshh-s-tajjmerom.html)

Konor 02.01.2018 12:43

Помощь с таймером
 
Есть такой код:
function timer(){
text.innerHTML--;
    if (text.innerHTML==0){
        alert('Fuck me!');
        //setTimeout(function(){},1000);
    } else {
        setTimeout(timer,1000);
    }
};
setTimeout(timer,1000);


Скопировал с Интернета. Не могу понять почему он выполняется до 0, а не 1 раз, ведь никакого цикла нету... Может кто объяснить?

j0hnik 02.01.2018 18:38

В таймерах циклы то и не используют.

Dilettante_Pro 03.01.2018 17:43

Konor,
Цитата:

Сообщение от Konor
Не могу понять почему он выполняется до 0, а не 1 раз, ведь никакого цикла нету

Например, содержимое text установлено в какое-то положительное число.
function timer(){
text.innerHTML--; // уменьшение содержимого text на единицу
    if (text.innerHTML==0){ // содержимое text равно 0?
        alert('Fuck me!'); // да - сообщение. завершение
     } else {
        setTimeout(timer,1000); // нет - запуск функции timer еще раз
    }
};
setTimeout(timer,1000); // первый запуск функции timer


Если содержимое text не равно нулю, функция timer запускается снова и снова, до достижения 0.
Вот вам и цикл.


Часовой пояс GMT +3, время: 19:49.