これまでは値をひとつずつ扱ってきた。今回は、複数の値をまとめる方法を見よう。順番のある並びには配列を使う。

const fruits = ['apple', 'orange', 'banana'];

console.log(fruits[0]);
console.log(fruits.length);

fruits[0] は最初の apple ですか? どうして0から数えるんでしょう。

多くのプログラミング言語では、配列の位置を0から数える。length は要素の個数だから、この場合は3だ。最後の位置は length - 1 になる。

あとから要素を足すこともできる。

const fruits = ['apple', 'orange'];
fruits.push('banana');

console.log(fruits.length);

const なのに、中身は増やせるんですか?

いい疑問だ。const が禁じているのは、その名前へ別の値を代入し直すことだけだよ。配列そのものを入れ替えることはできないけれど、中身の出し入れはできる。

ひとつの対象について複数の情報をまとめたいときは、オブジェクトが向いている。

const user = {
  name: 'JavaScript',
  level: 1,
  isActive: true,
};

console.log(user.name);

配列は位置で、オブジェクトは name のような名前で値を取り出すんですね。

いい整理だ。この名前と値の組をプロパティと呼ぶ。同じ役割の値を順番に並べるなら配列、関連する情報を名前つきでまとめるならオブジェクトだ。

この2つを組み合わせれば、複数のユーザーや商品のようなデータも表現できる。

const users = [
  { name: 'TypeScript', level: 3 },
  { name: 'JavaScript', level: 1 },
];

console.log(users[1].name);

記号は増えましたが、外側から「配列の2番目、その中の name」と読めますね。

その読み方で大丈夫。実は、ここまで扱ってきた値には、すべて種類がある。次はいよいよ、TypeScriptの中心にある型を言葉にしよう。