宣言せずに x = 20 とした際、let x = 10 を上書きしているのですか?

ローカルスコープにて let で x を宣言した場合、グローバルスコープの x とは別に新しく変数 x が作られます。
2024年6月25日
ユーザー

宣言をせずに、単に x = 20 とした場合、これはローカルスコープにならずにグローバルスコープのこちらの x を参照します。
従って、こちらでは当然 20 になるのですが、こちらの x はグローバルスコープの x が 10、20 と更新されてきたものなのでここも 20 になるはずです。

とありますが「どうしてこうなるのか?」と疑問に思いました。

一番上で宣言した let x = 10 から、x = 20 にすると
それ以降はブロック内だけは、x は 20 に変更される・上書きされるという認識であっていますか
ブロック外でも 20 に更新されるのでしょうか

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

プレミアムプランとは?

このレッスンの質問と回答(4)