[原]JavaScript必备知识系列-变量内存分配
ECMAScript 变量包括两种类型:基本类型值,引用类型
基本类型值
保存在栈内存中的简单数据段。Undefined, Null,Boolean,Number和String,在内存中分别占有固定大小的空间,一般称它们按值访问。
引用类型
保存在堆内存中的对象。Object,Function,Array,以及自定义对象,等等
意思是变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,该位置保存对象由于这种类型大小不固定(比如数组是可以动态增加的),不能保存在栈内存当中,但是它们的内存地址是固定的,我们可以存储在栈内存当中。当查询引用类型的变量时,就首先从栈中读取内存地址,然后“顺杆爬”地找到保存在堆中的值。这种方式一般称为按“引用”访问,因为我们操作的不是实际值,而是被那个值所引用的对象。