これはルーキーで書かれたコードです;
setTimeout がどれだけ長く設定されていても、最終結果は innerHtml に直接表示されます;
これはなぜですか
<!DOCTYPE html><html><head><meta charset= "utf -8"><title>ルーキー チュートリアル (runoob.com)</title></head><body>ドキュメントには、onmousemove イベント ハンドラーが追加されており、ドキュメント内でマウスが移動されたときに乱数が表示されます。
ボタンをクリックしてイベント ハンドラーを削除します。
#<button id='demo1'>クリックしてください</button><p id="demo">
<script>
document.getElementById("demo1").addEventListener("click", myFunction);var time = 5;function myFunction() { document.getElementById("demo").innerHTML = 時間;removeHandler(time);}function RemoveHandler(i) { i--; document.getElementById("demo").innerHTML = i; setTimeout(removeHandler(i),1000);# }
</script>
</body>
</html>
setTime() のコールバック関数は非同期で実行され、メインのコール スタックがクリアされた場合にのみタスク キューからコール スタックに入るため、前述の状況が発生します。