MENU

オブジェクトと配列

プログラミング初心者がJavaScriptを勉強し始めて思ったことが、メソッドやらアーギュメント(引数)やらオブジェクトやら、用語が次々と出てきて混乱してしまうということです。

あと、たとえばパラメータは、英語のparameterがそのままカタカナで使われているのに対し、アーギュメントの方は、引数と訳されて説明されているものが多く、英語と日本語でも混乱してしまうと思いました。

オブジェクトと配列についても、最近まで別物だと勘違いしていましたが、配列もオブジェクトの一種であることがわかりました。どちらも、情報をまとめる役割を担っています。

今日は、オブジェクトと配列についてまとめてみようと思います。

目次

オブジェクトとは

まず、どんな時にオブジェクトを使うかというと、何かについての情報を一つにまとめたいときに使います。たとえば、John Smithさんについての情報が次のようにあったとします。

const fisrtName = 'John';
const lastNmae = 'Smith';
const age = 30;
const greet = function() {
  return `Hi! I'm John. How are you?`;
}

全てJohnさんに関しての情報なので、一つずつconst〜と書いて定義していくのは面倒ですよね?という時に、オブジェクトにまとめましょうとなるそうです。

上の情報をまとめると

const person = {
  firstName: 'John', //プロパティ 名前(キー)と値(バリュー)のペア
  lastName: 'Smith',
  age: 30,
  greet: function () {
    return `Hi! I'm John. How are you?`;
  }, //greetのところはメソッド
};

こんな風にスッキリとまとまります。

そして、オブジェクトが持っている関数(この場合でしたら、greetのところ)のことをメソッドと呼びます。

プロパティやメソッドにアクセスするには?

それでは、キレイにまとまったJohnさんの情報へアクセスするにはどうしたら良いのでしょうか?

「Johnさんの姓って何だっけ?」「Johnさんって何歳だっけ?」というような場合です。

その場合、ドットを使用してプロパティへアクセスすることができます。

console.log(person.firstName); // "John"
console.log(person.age); // 30

また、Johnさんの挨拶(greet部分)へアクセスするには、同じようにドットを使用して関数greet()を繋げます。

console.log(person.greet()); // "Hi! I'm John. How are you?"

配列について

配列(Arrays)もオブジェクトの一種で、こちらも情報整理のために使用されます。

配列は、アクセスするときにインデックス(0からの順番)で呼び出すため、順番が大事なものについては配列を使っている印象があります。

こちらも例えば、あるグループがあった場合に

const name1 = 'Sarah';
const name2 = 'John';
const name3 = 'Snow';
const name4 = 'You';

メンバーを一人ずつ定義するのは面倒なので、配列を使用してまとめてしまいます。

const friends = ['Sarah', 'John', 'Snow', 'You'];

スッキリしましたね!

配列の要素へアクセスするには?

配列の要素へアクセスするには、インデックス番号番号がふってあるので、それを利用します。

例えば、Sarahさんをコンソールへ表示させたい場合は、friends[0]と書きます。

const friends = ['Sarah', 'John', 'Snow', 'You'];
console.log(friends[0]);

そして、面白いなと思ったのが(というか、配列についての誤解が解けた)typeof~でfirendsのデータ型を調べてみると、Objectと出てきました。そうか!配列もObjectだったのかとわかりました。

const friends = ['Sarah', 'John', 'Snow', 'You'];
console.log(typeof friends); //Object
friends.push('Erica'); //配列の末尾に'Erica'を追加
console.log(friends);

配列がObjectだということは、配列の末尾に追加する機能を持つ関数push()はメソッドということになります。

なぜなら、メソッドはオブジェクトが持つ関数のことだからです。

まとめ

ここまできて、プログラミングって語学の勉強に近いなと思いました。

例えば英語。なんとなくでもある程度話せるようにはなりますが、やはりどこかの時点で文法をマスターしなければ、ビジネスで使えるレベルにはなりません。

というのと、同じだなとしみじみ思ったのでした。

では、次はループについて書きたいと思います。

応援クリックいただけると嬉しいです

にほんブログ村 デザインブログへ にほんブログ村 IT技術ブログへ
目次