なぜブロック外でstartTimeを宣言しているのですか?

スコープについて復習しておきましょう。
2021年1月29日
ユーザー

クリックイベントの関数内で、let startTime = Date.now(); としてしまうとエラーが起きてしまい、
ブロック外でlet startTime;と宣言し、クリックイベントの関数内で startTime = Date.now(); とすると正常に動作します。
イベント後に宣言するのと、イベント前に初期化しておいた値に再代入することについて、いまいち理解ができません。教えていただけますか?

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?