変数を宣言するタイミングについて教えて下さい

例を挙げて説明していきます。
2021年3月11日
ユーザー

17行目に変数宣言をしています

let startTime;

そして、24行目にDate.now();を代入しています。

startTime = Date.now();

なぜ、17行目でDate.now();を代入しないのですか?
なぜ、22行目の代入した値が37行目の

const elapsedTime = ((Date.now() - startTime) / 1000).toFixed(2);

に反映されるのでしょうか?

17行目の代入した値は、スコープにより、
21~24行目の

  document.addEventListener("click", ()=>{
    startTime = Date.now();
    setWord();
  });

有効で、それ以外は無効にならないのですか?

回答よろしくお願いします。

この回答を見るにはプレミアムサービスへの登録が必要です

プレミアムサービスとは?