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

JavaScript入門 練習問題 12:オブジェクトのメソッドとローカル変数

次のオブジェクトのメソッド内で、一時的な処理用変数として宣言されているものはどれですか?

```javascript
const calculator = {
value: 10,
history: [],

calculate: function(numbers) {
let sum = 0; // A
const multiplier = 2; // B

for (let i = 0; i < numbers.length; i++) {
sum += numbers[i] * multiplier;
}

this.value = sum; // C
this.history.push(sum); // D

return sum;
}
};
```

  1. sum と multiplier
  2. sum のみ
  3. multiplier のみ
  4. this.value のみ
  5. this.history のみ

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

正解と解説を見る
正解:sum と multiplier

オブジェクトのメソッド内では、メソッド内だけで使われる一時変数(let/const宣言)と、オブジェクト自身のプロパティにアクセスするthis.〜が混在します。sumとmultiplierはメソッド内でのみ存在する一時変数です。

【正解の理由】
`let sum = 0` と `const multiplier = 2` はcalculateメソッドが呼ばれるたびに新しく作られ、メソッドが終了すると消滅する一時的な処理用変数です。

【不正解の理由】
• sumのみ:multiplierも同様にメソッド内だけで使われる一時変数であり、除外するのは誤りです。
• multiplierのみ:sumも同様にメソッド内だけで使われる一時変数であり、除外するのは誤りです。
• this.valueのみ:this.valueはオブジェクトのプロパティへの代入であり、メソッド終了後も値が残るため一時変数ではありません。
• this.historyのみ:this.historyもオブジェクトのプロパティ操作であり、メソッド終了後も履歴が残るため一時変数ではありません。

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