JavaScript入門 練習問題 1:変数宣言(let、const、var)
JavaScriptの変数宣言で、再代入が可能かつブロックスコープを持つのはどれですか?
- const
- let
- var
- function
- class
Qraftユーザーの成績:難易度 Bランク(レーティング1224)・正答率 73%(33/45回正解)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)
正解と解説を見る
正解:let
JavaScriptの変数宣言には `const`・`let`・`var`・`function`があり、これらのうち「再代入可能」かつ「ブロックスコープ」の両方を満たすのは `let` だけです。
【正解の理由】
`let` は `{}` のブロック内でのみ有効なスコープ(=ブロックスコープ)を持ちながら、宣言後に値を自由に変更できます。for文で `var` の代わりに `let` を使うと、ループの各回で独立した変数が作られるため、`setTimeout` などの非同期処理と組み合わせても意図通りの値を参照できます。
【不正解の理由】
• const:ブロックスコープですが、一度代入した値を再代入できません。
• var:再代入は可能ですが、ブロックスコープではなく関数スコープのため、if文やfor文の外からもアクセスできてしまいます。
• function:そもそも変数宣言ではなく、関数を定義するキーワードです。
• class:クラスを定義するキーワードであり、値を保持する変数宣言ではありません。