1、基本数据类型:number、string、boolean、undefiend、null、symbol(es6引入)
① 变量名存储于栈内存。
② 由于基本数据类型占用的空间大小是确定的,所以值被存储在变量的栈空间(栈内存),以提升变量的查询速度。
var a = 1,var b = a 都会在栈内存中开辟新的内存空间,用于存储变量名和值。
2、引用数据类型:非基本数据类型的其余类型
① 变量名存储于栈内存。
② 值存储于堆内存当中。
③ 由于引用数据类型占用空间大小的不确定性,所以在对象的栈空间上存储的是一个引用地址(地址所占内存空间是确定的),该地址指向其值的存储地址。
var c = new Date() 会在堆内存分配一个内存空间
var d = c 仅会将c的引用赋值给d,指向堆内存中的同一个对象