見出し画像

【JavaScript】データ型についてまとめてみた


はじめに

こんにちは、SHIFTのITソリューション部に所属しているTanakaです。現在は開発支援プロダクト推進部のテックブースト(以下、TB)プロジェクトに参画しています。
私は現在、Node.js実行環境を用いたJavaScriptでの開発に従事しているのですが、その中でデータ型についての苦手意識を感じたため、自分なりに調べてみました。
今回はその結果を紹介させていただければと思います。

JavaScriptと型

JavaScriptは動的型付け言語に分類され、多くの他の言語のように、変数に型を指定する必要がありません。どの変数にも全ての型を代入することができます。

しかし、変数の中に代入される値には型があり、これを正しく理解しないと、後で思わぬエラーが出てしまう可能性があります。

2つのデータ型

JavaScriptのデータ型は、プリミティブ型とオブジェクトに大別されます。

プリミティブ型は、一度作成したらその値は変更できません(不変値)。 具体的には、論理型、数値型、長整数型、文字列型、undefined型、null型、シンボル型の7つが当てはまります。

オブジェクトとは、プリミティブ型以外の型を指し、オブジェクト、配列、関数、正規表現、Dateなどが当てはまります。沢山あるので、プリミティブ型でないもの、としてまとめて考えるのがわかりやすいと思います。

各型について

次に、プリミティブ型の各型について紹介しようと思います。なお、オブジェクトについては解説が複雑になりすぎると考えられるため、表内での簡単な説明にとどめています。

プリミティブ型

  1. 論理型(Boolean)…真偽を表す値(true, false)が入る型です。

  2. 数値型(Number)…53や0.25などの数値のデータ型です。-9007199254740991から9007199254740991の範囲で、値を安全に格納できます。

  3. 長整数型(BigInt)…数値型の限界を超えて、安全に数値を格納できる型です。演算子も数値型と同様に使えますが、唯一 >>> だけが使えません。

  4. 文字列型(String)…'JavaScript' などの文字列のデータ型です。各要素は対応する位置があり、0から始まります。この例で言うと、Jは0に位置します。

  5. null型…代入すべき値が存在しないため、値がないことを意味し、nullという値のみが入ります。

  6. undefined型…値が代入されていないため、値がないことを意味し、undefinedという値のみが入ります。

  7. シンボル型(Symbol)…ES2015から追加された、一意で不変な値のデータ型です。

リテラル…データ型の見分け方

これまで、JavaScriptのデータ型について紹介してきましたが、ここからはデータの型が何なのかを見分ける、もしくはコードを書く際に型を指定する方法を紹介します。

この方法はリテラルと呼ばれています。
リテラルとは、プログラム上でデータ型を直接表現・記述できる構文のことです。
例えば、{}で囲まれていればオブジェクト、''で囲まれていれば文字列といったように、プログラム上で特定のデータ型の値を直接記述できるようになっています。

下の表は各型と対応するリテラルを表にしたものです。各型の説明なども書いてあるので、皆さんの役に立てば幸いです。

おわりに

今回の記事では、JavaScriptのデータ型の種類と、リテラルについて紹介しました。
基本的かつ重要な、それでいて難しいテーマだと思うので、これからもしっかりと勉強していきたいと思います。 この記事が私と同じようなJavaScript初学者の助けになれば幸いです。
参考までに、今回利用したサイトのリンクを貼っておきます。



執筆者プロフィール: Atsuhito Tanaka
株式会社SHIFT ITソリューション部所属。現在は、開発支援プロダクト推進部で、テックブーストプロジェクトに参画中。

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

PHOTO:UnsplashOskar Yildiz