Timer start in JavaScript

Although the setTimeout function is not designed to create timers, you can still make them with it if you use recursion:

javascriptlet i = 0;

function timer() {
  setTimeout(function() {
    console.log(++i);
    
    timer(); // let's call ourselves
  }, 1000);
}
timer();

You can stop such a timer simply without letting the recursion happen:

javascriptlet i = 0;

function timer() {
  setTimeout(function() {
    console.log(++i);
    
    if (i < 10) { // runs only if counter is less than 10
      timer();
    }
  }, 1000);
}
timer();
Задание 1

Print the number 0 to the console. After one second - print the number 1, after two seconds - print the number 2, after 3 seconds - print the number 3. And so on ad infinitum.