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

JavaScript入門 練習問題 18:構文:配列の分割代入

JavaScriptの配列における分割代入(デストラクチャリング)に関する説明として、正しいものはどれですか?

  1. const [first, second] = [10, 20]; と記述すると、firstに10、secondに20が代入される
  2. 分割代入は配列にのみ使用可能で、途中の要素を無視して代入することはできない
  3. const [first, second] = [10, 20]; と記述すると、firstに20、secondに10が代入される
  4. 分割代入を使うには必ずObject.assign()を事前に呼び出しておく必要がある
  5. 分割代入は配列の要素数と変数の数が完全に一致しないとエラーになり、使用できない

Qraftユーザーの成績:難易度 Bランク(レーティング1275)・正答率 36%(4/11回正解)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)

正解と解説を見る
正解:const [first, second] = [10, 20]; と記述すると、firstに10、secondに20が代入される

配列の分割代入では、左辺の変数の並び順に対応する形で、右辺の配列の要素が順番に代入されます。

【正解の理由】
const [first, second] = [10, 20]; のように書くと、配列の先頭から順にfirst、secondへと値が代入されるため、firstは10、secondは20になります。

【不正解の理由】
• 「firstに20、secondに10」:代入順序が逆であり、実際には配列の並び順どおりに代入される
• 「途中の要素を無視して代入できない」:実際にはconst [a, , c] = [1,2,3]; のようにカンマを空けることで要素を読み飛ばすことができる
• 「Object.assign()を事前に呼び出す必要がある」:Object.assign()はオブジェクトのマージに使うメソッドであり、分割代入の前提条件ではない
• 「要素数と変数の数が完全に一致しないとエラーになる」:変数の数が少なくても余った要素は無視され、多くても未定義(undefined)が代入されるだけでエラーにはならない

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