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

JavaScript入門 練習問題 45:演算子:値の加算処理

次のコードを実行したときのコンソールへの出力として正しいものはどれですか?

```javascript
let x = 5;
let y = x++;
console.log(x, y);
```

  1. 変数xも変数yも「5」という数値として出力される
  2. 変数xも変数yも「6」という数値として出力される
  3. 変数xは「6」となり、変数yは「5」として出力される
  4. 変数xは「5」となり、変数yは「6」として出力される
  5. 構文エラーになるため、コンソールには何も出力されない

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

正解と解説を見る
正解:変数xは「6」となり、変数yは「5」として出力される

変数xに後置のインクリメント演算子(++)が使われているため、加算される前の値がyに代入され、その後にxが加算されるので、変数xは「6」となり変数yは「5」として出力されます。

【正解の理由】
`x++`のようにインクリメント演算子を変数の後ろに置く(後置インクリメント)と、「現在の値を返してから、変数自身に1を足す」という動作になります。そのため、yには5が代入され、その直後にx自身は6になります。

【不正解の理由】
• 「変数xも変数yも『5』という数値として出力される」という説明は誤り。xには1が足されるため6になる
• 「変数xも変数yも『6』という数値として出力される」という説明は誤り。もし`++x`(前置インクリメント)であれば両方6になるが、今回は後置のためyは5のままになる
• 「変数xは『5』となり、変数yは『6』として出力される」という説明は誤り。加算されるのはx自身である
• 「構文エラーになるため、コンソールには何も出力されない」という説明は誤り。正常なJavaScriptの構文である

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