【JavaScript】オブジェクト型の取り扱い方法を学んでいく

投稿日:

プログラミング初心者の勉強ブログ #101

JavaScriptの「オブジェクト型」の取り扱うために必要なメソッドや書き方についての備忘録です。(splice、forEach、map、filter、スプレッド演算子、分割代入など)

JSの基礎が固まっていない状態でjQueryやってたので改善していきたいと思います。

 

目次

 

JavaScriptのオブジェクト型とオブジェクト

JSの「オブジェクト」について学習を進める中で”オブジェクト型”と”オブジェクト”という言葉で異なる使い回しを感じたので、まずはその点について整理します。

データ型としてのオブジェクト

JSにはデータ型として

  • 文字列(string)
  • 数値(number)
  • undefined(undefined)
  • null
  • 真偽値(boolean)
  • オブジェクト(object)

という分類があります。基本のデータ型として文字列や数値がある一方で、データ型としてのオブジェクトは、配列や連想配列など少し複雑な構造をしたデータの総称です。

※JSではnullに対しtypeof関数を当てるとobjectと表示されます。

 

オブジェクト型の一つとしてのオブジェクト

上で書いた通り、JSには複雑なデータを取り扱えるオブジェクト型があります。Rubyで言えば配列やハッシュです。このハッシュデータのことを、JSでは「オブジェクト」という呼ばれ方をされてます。オブジェクト型の基本はこれ、ということなのかよくわかりませんが、学習に当たって説明を読む限りそのような印象を受けます。「オブジェクト型の一つとしてのオブジェクト」という表現が正しいのかは微妙ですが、配列もオブジェクト型に該当するのでこのような表現をしてます。

オブジェクトには基本の書き方があり、

ここでは memberという変数にオブジェクトを代入してます。nameとageがキー、bobと20がバリューです。この書き方を「オブジェクトリテラル」と呼びます。

 

オブジェクト型の操作

オブジェクト操作

 

splice(配列要素の追加削除)

 

forEach(繰り返し処理)

 

map(配列を加工)

 

filter(配列要素を抽出)

 

スプレッド演算子

 

分割代入

 

 

まとめ

アウトプットこそ至高という考えになり始めているこの頃だが、最近見たあるYouTube動画で、隠れがちだったインプットが再び台頭してくる機会があった。QuizKnockというチャンネルだ。このチャンネルはTBSの「東大王」という番組に出ている東大生が開設していて、主にクイズ動画を投稿している。頭の良い東大生が難しい問題に意味わからないスピードで解答するスゴさは、見ていて面白い。

【東大生検証】Googleの入社試験をガチで解いてみる

上のリンクはGoogle入社試験をクイズ形式で解いていく動画であり、東大生は1問目から即答で正解してくる。動画内で「知識が全てに勝つ」と断言する東大生。「知らない問題は知ってる問題から演繹して考える」「解答は0から生み出すのではなく、自分の中の0.1をたくさん探して作っていくスタイルであるべき」東大に合格したという実績を持つ人間に、自信気に論理的な主張をされたときの説得力である。

「知識=インプット」の構図が正しいか否かは問題の論点になりそうだが、少なくともアウトプットよりはインプットの方が「知識を得る量」に関しては優っていると思う。アウトプット至上主義なるものに陥りかけた自分に、偏った行動や考えはよくないよ、と言われた感じがする。

ものや言葉について細かい定義まで突き止めるような行動を取ってしまうようになりつつある。オブジェクト指向を考えることに時間を多く使うことによって生じてしまった副作用なのかもしれない。「インプットとは」のような、言葉の定義を突き止める作業は、オブジェクトの属性と振る舞いの責任所在を考えることに近いものがある気がする。(考えるだけでオブジェクト指向設計はできない。)

以上ありがとうございました。

-プログラミング学習
-,

Copyright© s u p ? , 2019 All Rights Reserved.