【JavaScript】プリミティブ型のデータ型とオブジェクト型、それぞれの特徴

JavaScript

JavaScriptでは、変数や値は特定の「型」を持ちます。型は、データがどのように扱われるかを決定する重要な概念です。JavaScriptのデータ型は大きく分けて「プリミティブ型」と「オブジェクト型」の2つがあります。この記事では、これらの型について詳しく解説します。

プリミティブ型

プリミティブ型(または基本型)は、JavaScriptで最も基本的なデータ型です。これらの型はすべて、変更できない値(イミュータブル)を持ちます。以下がJavaScriptのプリミティブ型です。

null

nullは、「意図的に値が存在しない」ことを示す特殊な値です。変数に`null`を代入することで、その変数に値が存在しないことを明示的に表します。

let value = null;
console.log(value); // null

undefined

undefinedは、変数が宣言されているが、値がまだ代入されていない状態を示します。未初期化の変数や存在しないオブジェクトのプロパティにアクセスすると、undefinedが返されます。

let value;
console.log(value); // undefined

Boolean

Boolean型は、true(真)またはfalse(偽)のいずれかの値を取るデータ型です。主に条件分岐や論理演算に使用されます。

let isReady = true;
let isFinished = false;

Number

Number型は、整数や小数を含む数値を表します。JavaScriptでは、すべての数値はNumber型であり、整数も浮動小数点数も同じ型として扱われます。

let age = 25;
let price = 99.99;

BigInt

BigIntは、非常に大きな整数を扱うためのデータ型です。Number型では表現できない大きな整数を扱いたい場合に使用します。

let bigNumber = 123456789012345678901234567890n;

String

String型は、文字列を表すデータ型です。文字列は、シングルクォート(’)、ダブルクォート(”)、またはバックティック(`)で囲むことで表現します。

let greeting = "Hello, World!";
let name = 'すずきまさゆき';

Symbol

Symbolは、唯一無二の識別子を表すデータ型です。オブジェクトのプロパティキーとして使用されることが多いです。Symbolは常にユニークで、他のSymbolとは異なる値を持ちます。

let uniqueId = Symbol('id');
console.log(uniqueId); // Symbol(id)

オブジェクト型

オブジェクト型は、複雑なデータ構造を表現するための型です。オブジェクト型は、複数の値をプロパティとして持つことができ、データと機能をまとめて管理するのに適しています。以下に、JavaScriptの代表的なオブジェクト型を紹介します。

オブジェクト

オブジェクトは、キーと値のペアを格納するコンテナです。キーは文字列またはSymbolで、値には任意の型を使用できます。オブジェクトは、データを構造化して格納するための基本的なデータ型です。

let person = {
    name: "すずきまさゆき",
    age: 30,
    greet: function() {
        console.log("Hello, " + this.name);
    }
};

配列

配列は、順序付きのデータのリストを格納するためのオブジェクト型です。配列の各要素には、0から始まるインデックスを使用してアクセスします。

let fruits = ["りんご", "バナナ", "さくらんぼ"];
console.log(fruits[0]); // "りんご"

関数

関数は、コードの再利用可能なブロックを表すオブジェクト型です。関数は、他の変数と同様に扱うことができ、引数を受け取り、処理を実行し、結果を返すことができます。

function add(a, b) {
    return a + b;
}

let sum = add(5, 3);
console.log(sum); // 8

プリミティブ型とオブジェクト型の違い

値の扱い

  • プリミティブ型は、値そのものを持ちます。値はイミュータブル(不変)で、変更することはできません。コピーするときには、値そのものがコピーされます。
  • オブジェクト型は、参照を持ちます。オブジェクト自体はミュータブル(可変)で、プロパティを追加・削除・変更することができます。コピーするときには、参照がコピーされるため、コピー先と元が同じオブジェクトを参照します。

メモリの使用

  • プリミティブ型の値は、メモリ内に直接格納されます。
  • オブジェクト型の値は、ヒープに格納され、その参照がメモリ内に格納されます。

比較

  • プリミティブ型の比較は、値そのものを比較します。
  • オブジェクト型の比較は、参照を比較します。同じ内容を持つ別々のオブジェクトは等しくないと判断されます。
let a = 10;
let b = 10;
console.log(a === b); // true(プリミティブ型の値比較)

let obj1 = { name: "すずきまさゆき" };
let obj2 = { name: "すずきまさゆき" };
console.log(obj1 === obj2); // false(オブジェクト型の参照比較)

まとめ

JavaScriptの型には、プリミティブ型とオブジェクト型があります。プリミティブ型は基本的なデータ型で、値そのものを扱います。
一方、オブジェクト型は複雑なデータ構造や機能を扱うための型で、参照を介して操作されます。これらの型を理解することで、JavaScriptでのプログラミングがよりスムーズに進められるようになります。

           

お仕事・当サイトへ興味を持っていただいた方
お問い合わせはこちらから

ma-san(鈴木正行)
テクニカルディレクター / Webデザイナー

「ma-san」の中の人。東京都・千葉県・宮城県仙台市を中心に企業のWebデザイン/マーケティング/IT戦略のプランニングからWebサイト構築・運用をしています。
「Webサステナビリティ・Webアクセシビリティ」を中心に、「変わりゆくWebと共にサービス・サイトを改善していくこと」を重視します。
当サイトではお仕事のご相談からナレッジシェアを中心に活動していきます。

JavaScript
スポンサーリンク
ma-sanをフォローする
ma-san blog
タイトルとURLをコピーしました