-
值类型:String、Number、Boolean、Undefined、Symbol(ES6新增)
-
引用类型:Object、Array、Null(特殊引用类型,指向空地址)、function(特殊引用类型,不用于存储数据)
值类型,存储在栈内存,一个变量对应一个栈内存。
var a = 100;
var b = a;
a = 200;
console.log(b); // 100 值类型改变,不会影响其他变量
引用类型,指向堆内存的地址
var a = { name: 'lily' };
var b = a;
a.name = 'tom';
console.log(b.name); // tom 引用类型改变,会影响引用同个地址的变量
值类型和引用类型存储不一样是为了性能,值的占用空间都比较小,引用类型有可能会很大,占用空间较大