主な内容の要点
1. プリミティブ型とオブジェクト型の区別
- JavaScript のデータ型は大きく「プリミティブ型(原始型)」と「オブジェクト型」に分けられる。
- プリミティブ型には以下の 7 種類がある:
数値(Number)
長整数(BigInt)
文字列(String)
論理値(Boolean)
undefined
null
シンボル(Symbol) - このうち、undefined と null に対してはラッパーオブジェクトが提供されない。
| プリミティブ型 | ラッパーオブジェクト |
|---|---|
| 数値 | Number |
| 長整数 | BigInt |
| 文字列 | String |
| 論理値 | Boolean |
| シンボル | Symbol |
2. ラッパーオブジェクトとは何か
- プリミティブ型の値(例:数値や文字列)には通常プロパティやメソッドはないが、JavaScript は内部的に「対応するラッパーオブジェクト」を一時的に生成して、メソッド呼び出しを可能にしている。
- 例えば:
let num = 17;
console.log(num.toString(2)); // “10001”
JavaScript- この
toString(2)呼び出し時に、numは暗黙的にnew Number(num)のようなラッパーオブジェクトに変換され、そのメソッドが呼ばれる。
3. ラッパーオブジェクトを明示的に生成することの注意点
new Number(…)、new String(…)、new Boolean(…)のようにラッパーオブジェクトを明示的に生成できるが、これはプリミティブ型とは別のオブジェクト型になる。
let num = 10;
console.log(typeof num); // “number”
let numObj = new Number(num);
console.log(typeof numObj); // “object”
console.log(num === numObj); // false
JavaScriptこのように、プリミティブの値とラッパーオブジェクトは型も等価比較も異なる。
また、Number(値) のように new を使わず呼び出すと、プリミティブ値が返る(オブジェクトではない)という違いもある。

