值类型和引用类型

215 阅读1分钟
  • 值类型: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   引用类型改变,会影响引用同个地址的变量

值类型和引用类型存储不一样是为了性能,值的占用空间都比较小,引用类型有可能会很大,占用空间较大