Edited at

JavaScriptで秒を数えるいくつかの方法


普通の書き方

let i = 0;

const update = () => {
console.log(i);
i++;
}
setInterval(update, 1000);


再帰関数

const update = (i = 0) => {

console.log(i);
return setTimeout(() => update(i + 1), 1000);
};
update();


クロージャー

const update = () => {

let i = 0;
return () => console.log(i++);
};
setInterval(update(), 1000);

短く書くと

const update = (i = 0) => () => console.log(i++);

setInterval(update(), 1000);


Promise

(async() => {

for (let i = 0; true; i++) {
await new Promise(res => setTimeout(res, 1000));
console.log(i);
}
})();