質問: characters[i]; // 「名前は〇〇です」を出力してください console.log(`名前は${character.name}です`); // 「〇〇歳です」を出力してください console.log(`${character.age}歳です`); } ```
回答: `character` に `characters[i]` を代入という話だとしましょう(とりあえずね)。 `characters[i]` は i 番目のキャラクターという意味だと思いますが、数回これを書くのだったり、他人(**未来の自分を含む**)が読まないに書くのだったらよいと思います。しかしコードというのはそうではなくこれを何度も書いたり、他人を読んだりと言ったことのほうが多いわけです。 まず、`characters[i]` を何回も書かなければいけないとなると単純にタイプ量が多くなります。それに `[i]` が入力しづらいので大変になってきます。 また、「i 番目の」キャラクターというよりは「その」キャラクター(英語でいう the)に固定してくれたほうが考えやすくなります。これは非常に重要なことで、**関心の分離**の一種とも言えます。この関数の中では「i 番目の」という情報は邪魔なのです。邪魔な情報は隠したほうがやりやすい、これはデザインの分野などでも言われていることです。 このような理由で変数の代入を行うことがよくあります(**説明変数**などと言ったりもします)。実行速度は気にしなくても大丈夫です。そのへんはインタープリターやコンパイラーが最適化してくれますので。それよりも人間が読んでて負荷が少ないということが大事なのです。