基本类型和引用类型

JavaScript变量分为两种类型:一种是基本类型,一种是引用类型。基本类型就是我们常见的五种类型:undefined、boolean、number、string、null这五种。不属于这五种之内的就是引用类型。

基本类型保存在栈区即栈内存,引用类型保存在堆区即堆内存。

这里我们先举个例子:


基本类型和引用类型_第1张图片
基本类型和引用类型_第2张图片
运行结果

我们看到,给arr2尾部添加一个元素4,结果arr1这个数组尾部也添加了一个4。为什么会出现这种情况,其实很简单,这就是我们所说的引用。

对于基本类型:

var a  = 10;

var b = a;

基本类型和引用类型_第3张图片
在内存中的栈内形式

对于引用类型:

基本类型和引用类型_第4张图片
基本类型和引用类型_第5张图片

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

你可能感兴趣的:(基本类型和引用类型)