JavaScript变量分为两种类型:一种是基本类型,一种是引用类型。基本类型就是我们常见的五种类型:undefined、boolean、number、string、null这五种。不属于这五种之内的就是引用类型。
基本类型保存在栈区即栈内存,引用类型保存在堆区即堆内存。
这里我们先举个例子:


我们看到,给arr2尾部添加一个元素4,结果arr1这个数组尾部也添加了一个4。为什么会出现这种情况,其实很简单,这就是我们所说的引用。
对于基本类型:
var a = 10;
var b = a;

对于引用类型:


我们看到对于引用而言他们将名字和地址存到栈内存中,堆内存中保存的是对象,我们队obj1或者obj2都会导致对象Object改变。他们只是指向了这个对象并不想基本类型变量那种,再次创建一个栈内存,不会相互影响。
网友评论