【JavaScript】プリミティブ型とオブジェクト型

JavaScript
スポンサーリンク

初心者の独学でのプログラミング学習はとてもツライ…

プログラミングをマスターしたい!

今のIT業界はプログラミングエンジニアが不足していると言われています。
高収入の職業とも言われる分野もありますし、AI、機械学習、ディープラーニング、IOTといった注目される分野が目白押しです。

でも、いざ初心者がプログラミングをマスターしようとすると…

  • 本を読んだりネットの記事で自力で勉強しているけど限界を感じる
  • プログラミングスクールに定期的に通うのは面倒だ
  • 地方に住んでると家の近くにプログラミングスクールなんてない
  • どのプログラミング言語を学べばいいのか悩む
  • 実際の就職や転職にプログラミングが活かせるのか心配だ

など、プログラミングを自分で勉強しようとすると悩みが尽きません。

プログラミングに詳しい友人に教えてもらおうと思っても、そんな友人なんて滅多にいません。いたとしても細かく教えてくれるほど時間に余裕がある人はいないでしょう。

そんな独学でプログラミングをマスターするのに限界を感じてる方に、オンラインプログラミングスクールをがおすすめです。

おすすめのオンラインスクールはこちら

JavaScriptのオブジェクトについての話題を扱って来ましたが、JavaScriptのデータ型(type)には大きく分けてプリミティブ型とオブジェクト型に大別されます。

プリミティブ型には数値・文字列・論理値・null・undefinedがあり、オブジェクト型はそれ以外のオブジェクトということになります。プリミティブ型はプロパティとメソッドを持たない単純なデータですが、オブジェクトはプロパティ(値)とメソッド(操作)の集まりとなっています。

プリミティブ型とオブジェクト型について比較して見ていきましょう。

スポンサーリンク

プリミティブ型とは?オブジェクト型とは?

プリミティブ型とオブジェクト型の違いは、プリミティブ型を持つ変数は、その変数自体の中にデータを保持するということです。

オブジェクトに関連つけられた変数には実際にはオブジェクトは含まれれいません。オブジェクトが格納されているメモリへの参照が格納されています。ですから、オブジェクトとして宣言された変数には、そのオブジェクトを示すコピーはありません。

このあたりの違いを順に見ていきましょう。

プリミティブ型

まずはプリミティブ型から見ていきます。いくつかの変数を定義して見ていきましょう。

次のようにスクリプトファイルを書いて、前と同様にJavaScriptコンソールで実行していきます。

変数aを定義し、変数bにそのaを代入しています。続けてaに100を代入して、それぞれをconsole.logで表示しています。

JavaScriptコンソールには次のように表示されます。

思っていた数字が表示されたでしょうか? bにaを代入した時には20で、aに100を代入したことが影響していません。先ほど説明したように、格納先のメモリを参照するのではなくデータのコピーがそのまま入っていると言うことがこれで確認できます。

オブジェクト型

今度はオブジェクト型で同様な操作をしてみようと思います。

次のようなスクリプトを書いてみます。

obj1という辞書型のオブジェクトを定義しています。以降の操作はプリミティヴで行ったものと同じような操作であるのはわかると思います。

JavaScriptコンソールには次のように表示されます。

先ほどと違って、両方とも同じ値になっています。書き換えたオブジェクトの値が反映されて表示されている訳です。これはオブジェクト自体がコピーされたのではなく、データの保存先メモリのアドレスを参照している訳です。ここでは、obj1もobj2も同じメモリのアドレスを保持していることになります。だから同じ値になっている訳です。

スポンサーリンク

プリミティブ型とオブジェクト型の違いを関数の操作で確認

先ほどの操作で、プリミティブ型とオブジェクト型の違いは確認できたと思いますが、ここではまとめ的にプリミティブ型とオブジェクト型を関数で一緒に扱ってみます。

次のようなコードを書いてみます。

最初にageとobjを定義しています。それぞれプリミティブ型とオブジェクト型です。ここでchange()関数を定義していきます。引数a,bを用意して、二つのパラメータを用意しています。aの値を26に、bの値をcityとしてリゼンブールにしています。

この関数を呼び出して、console.logでageとobj1.cityを表示しています。

JavaScriptコンソールには次のように表示されます。

関数はaの値を26に変更していますが、ageはプリミティブ型なので20のまま表示されています。objはオブジェクト型なので、obj.cityはb.cityの参照先となって与えられたパラメータに変更されます。したがって、セントラルからリゼンブールに変わっているのがわかります。

関数内でプリミティブ型とオブジェクト型を定義すると、プリミティブ型はデータのコピーが渡されるので、関数内での変更は関数の外部の変数には影響しませんが、オブジェクト型は参照を渡すので、関数内での変更が外部の変数に反映されます。

スポンサーリンク

まとめ

ここではJavaScriptのデータ型(type)であるプリミティブ型とオブジェクト型を扱いました。

プリミティブ型は数値・文字列・論理値・null・undefinedで、オブジェクト型はそれ以外のオブジェクトです。

プリミティブ型はプロパティとメソッドを持たない単純なデータですが、オブジェクトはプロパティ(値)とメソッド(操作)の集まりです。

プリミティブ型の変数は、その変数自体の中にデータそのものを保持しますが、オブジェクトに関連つけられた変数は、オブジェクトが格納されているメモリへの参照が格納されています。ここでは、この違いを操作で見てきたことになります。

自宅学習はオンラインプログラミングスクールを活用!

自宅学習にはオンラインプログラミングスクールがおすすめ!

オンラインプログラミングスクールは独学でプログラミングを学習する時のデメリットを解消する仕組みが備わっています。

気になるところは…

学習がオンラインで完結するのはもちろんですが、独学ではできない質問サポートがあるかどうか。わからないことを現役のエンジニアが質問に答えてくれるといいですよね。

受講者個人に担当のメンターがつき、マンツーマンで学習の相談に乗ってくれることも必要で、ITエンジニアの世界についても伺えたりもすると幅が広がります。

オンライン面談だけでなく、チャット機能を使って気軽に質問を投げかけることができることも大切です。

また、オリジナルプロダクトの開発とサポートがコースの中に組み込まれていて、独学ではなかなか難しい実践的なスキルの習得にもつなげたい。

プログラミングをマスターした後の実際の仕事につながる転職サポートでがあると、ITエンジニアの世界に飛び込むのに不安が解消されます。

そんな豊富なメニューが揃っているおすすめのオンラインプログラミングスクールがこちらにあります。

おすすめのオンラインプログラミングスクールはこちら

TechAcademyはおすすめのオンラインプログラミングスクール!

オンラインのプログラミングスクールでは、テックアカデミーの充実度が目を見張ります。

オンラインで受講が完結するので、自宅学習でプログラミングをマスターしたい人にはテックアカデミーがおすすめです。

メンター制度も現役のプロが対応してくれます。大学生などが対応しているスクールに比べて本気度と専門性が違います。メンター制度の無いスクールもありますし、担当では無いメンターが対応するスクールもあったりするので、相談の質が違いますね。

チャットサポートもあるので、それが無いスクールに比べて相談の気軽さの違いがあります。

プロダクト開発のサポートで実践力が養われるだけでなく、どの講座を利用しても転職サポートが受けられるのはありがたい。

用意されているコースも、初心者向けのプログラミングコースから、Python、Java、PHP、iPhoneアプリ、AndroidといったITエンジニアのベースとなる主要な言語だけでなく、AI、データサイエンス、ブロックチェーン、webアプリケーションと行った実践的なコースまで用意しています。

他にも、webデザインやUI/UXデザイン、動画編集、webディレクションやwebマーケティングといったプログラミング以外での役立つコースまであります。

このようなたくさんの選択肢から自分にあったコースを選ぶことがでるのがテックアカデミーです。

コースの期間も短期間でマスターしたり、長期の受講でじっくり取り組むコースを選ぶこともできます。

複数講座のセットコースを利用することで大幅な割引が受けらるので、お得に受講することもできます。

無料体験もありますので、プログラミング学習でオンラインスクールを考えている人はTechAcademyをぜひ利用してみてください。

テックアカデミーの公式サイトはこちら

JavaScript
スポンサーリンク
CodeGraffitiをフォローする

とにかく進め!Pythonプログラミング入門 〜 コードグラフィティ
タイトルとURLをコピーしました