Qraft(クラフト) 資格・学習クイズアプリ

JavaScript入門 練習問題 1:変数宣言(let、const、var)

JavaScriptの変数宣言で、再代入が可能かつブロックスコープを持つのはどれですか?

  1. const
  2. let
  3. var
  4. function
  5. 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:クラスを定義するキーワードであり、値を保持する変数宣言ではありません。

問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)