generated at
JavaScript: プリミティブ型と参照型

変更不可能(イミュータブル
メソッドを持たないデータ
種類
文字列 'string'
数値 1 , 3.14
真偽値 true , false
null null
undefined undefined
シンボル
リテラルにより生成
変数には値が格納される。変数がコピーされると、値がコピーされる。
js
let x = 0; let y = x; // y には 0が格納される。0への参照ではない。 x = 1; console.log(y) // 0
オブジェクトのように扱われると、ラッパーオブジェクト?を生成してオブジェクトのように扱われる

変更可能(ミュータブル
プリミティブ型以外はすべてオブジェクト
Object() {key: value}
Array() [1, 2, 3]
Function() function() {}
Date() new Date()
RegExp() /^a/
Error() new Error()
複合型とも
リテラルもしくは new 演算子で生成
変数にはオブジェクトへの参照が格納される。変数がコピーされると、オブジェクトへの参照がコピーされる。
js
let obj1 = {}; let obj2 = obj1; // obj2 には {}への参照が格納される。 obj1.prop = 1; console.log(obj2.prop) // 1

データ型を調べる方法
js
console.log(typeof true); // "boolean"


参考
開眼! JavaScript