基本类型
基本类型指的是简单的数据段(基本类型包括:undefine,null,String,Number,Boolean)
引用类型
引用类型指那些可能有多个值构成的对象(其中多个值需要注意。为什么是多个值?因为JS中一切皆对象。基本类型也是对象,只是他们只有一个值)
变量访问
什么是变量:变量就是定义在某个作用域中的一个名字,并且绑定了一个块内存
什么是变量值:值就是存放在快内存中的数据。(地址也是数据,也是值。这对用于理解参数是按值传递有用)
基本类型的访问:按值访问
理解:JS定义一个变量后,变量存放在栈中。基本类型变量的栈中存放的是我们我们变量的数据,例如。
var name = '"chenpingan"//定义一个基本类型变量,变量名为name,数据为chenpingan
上面的变量值‘chengpingan’就存放在栈中
所以我们在访问基本类型变量时,得到的是这个变量的值。这就是按值访问。
引用类型访问:按引用访问
理解:JS定义一个引用类型变量后,此变量也存放在栈中。只是,引用类型变量在栈中存放的是一个地址,这个地址指向堆中的一个内存,这个内存存放着我们这个变量的数据。
var person = { name: "chenpingan" }//定义一个引用类型变量person,person存放在栈中,而{ name: "chenpingan" } 存放在堆中,栈中存放的是指向这个堆的地址。
所以我们在访问引用类型变量时,得到的是这个变量对应数据的地址。这就是按引用访问(这种说法不严密)。