enumsはグローバル変数ではなく引数であるため、2回目以降の引数が渡っていないことになってしまっているのが原因かと思われます。
問題のコード:
Javascript
1 let time = setTimeout(countdown, 1000);
修正後:
Javascript
1 let time = setTimeout(countdown, 1000, enums);
全体:
Javascript
1let countdown = (enums) => {
2 enums--;
3 console.log(enums);
4 let time = setTimeout(countdown, 1000, enums);
5 if (enums === 0) {
6 clearTimeout(time);
7 }
8}
9countdown(10);
また、定期的に実行する操作は関数を多重に呼び出すより、setInterval()を使ったほうが個人的に見やすくなると思いますので、そのコードも載せておきます:
JavaScript
1let countdown = (enums) => {
2 let countnum = enums;
3 let time = setInterval(()=>{
4 countnum--;
5 console.log(countnum);
6 if (countnum === 0) {
7 clearInterval(time);
8 }
9 }, 1000);
10}
11countdown(10);
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/23 23:58