メインコンテンツまでスキップ

プリミティブ型 (primitive types)

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

イミュータブル特性

JavaScriptのプリミティブ型の1つ目の特徴は、値を直接変更できない点です。つまりイミュータブル(immutable)です。一方、オブジェクトには、値を後で変更できるというミュータブル特性(mutable)があります。

プロパティを持たない

JavaScriptのプリミティブ型の2つ目の特徴は、基本的にプロパティがないことです。プリミティブ型のnullundefinedにはプロパティがありません。

js
null.toString(); // エラーになる
js
null.toString(); // エラーになる

ところが、文字列や数値などのプリミティブ型は、プロパティを持ったオブジェクトとして扱えます。

js
"name".length; // 4
js
"name".length; // 4

このように、プリミティブ型をまるでオブジェクトのように扱えるのはJavaScriptの特徴です。JavaScriptには、プリミティブ型をオブジェクトに自動変換する機能があります。この機能はオートボクシング(autoboxing)、自動ボックス化と呼ばれます。

📄️ ボックス化

多くの言語では、プリミティブは一般的にフィールドやメソッドを持ちません。プリミティブをオブジェクトのように扱うには、プリミティブをオブジェクトに変換する必要があります。プリミティブからオブジェクトへの変換をボックス化(boxing)と言います。

プリミティブ型の種類

プリミティブ型は次の7つがあります。

  1. boolean型(論理型): trueまたはfalseの真偽値。
  2. number型(数値型): 00.1のような数値。
  3. string型(文字列型): "Hello World"のような文字列。
  4. undefined型: 値が未定義であることを表す型。
  5. null型: 値がないことを表す型。
  6. symbol型(シンボル型): 一意で不変の値。
  7. bigint型(長整数型): 9007199254740992nのようなnumber型では扱えない大きな整数型。

上のプリミティブ型以外は、JavaScriptにおいてはすべてオブジェクトと考えて問題ありません。配列や正規表現オブジェクトなどもすべてオブジェクトです。

学びをシェアする

・JSのプリミティブ型はイミュータブルでプロパティを持たない
・プリミティブをオブジェクトのように扱える「オートボクシング」がある
・プリミティブは7種類: boolean, number, string, undefined, null, symbol, bigint
・それ以外は全部オブジェクト

『サバイバルTypeScript』より

この内容をツイートする