基本データ型
String Number Boolean Null undefined
例:
引用データ型
obj.nameとobj1.nameが同時変わることが確認できました。
JSの中の変数は全部栈内存の中に保存される。
基本データ型の値は全部栈内存の中で保存する。
変数間の値と値は独立している。他の値に影響しません。
注意:栈内存において変数の値が格納されているのではなく、変数の値が保存された場所が格納されいている。
obj.nameとobj2.nameは0x123を指向している。同じオブジェクトを指しています。
var obj = new object();
obj.name = "tanaka";
var obj2 = obj;
obj2.name = "tanaka";
下記のように変更します。
obj2 = null;
console.log(obj2);
console.log(obj);
obj2は変更しても、堆内存の値に影響しません。
ルール:
二つの基本データ型を比較する時は値の比較になります。
二つの引用データ型を比較する時に、オブジェクトの保存場所を比較する。
二つのオブジェクトが同じでも、保存場所が違ったら、等しくになりません。