简单数据类型在存储时,变量中存储的是值本身,因此叫做值类型。
string、number、boolean、undefined、null
null是特殊存在,返回的是object,如果要创建空对象,可以用null。
用new创建的都是复杂数据类型
(1)栈:由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作系统类似于数据结果中的栈。
简单数据类型存放到栈里面
(2)堆:一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。
复杂数据类型存放到堆里面
js有两种类型的值:栈:原始数据类型(undefinen,null,boolead,number,string)
堆:引用数据类型(对象,函数和数组)
两种类型的区别是:储存位置不同,
原始数据类型直接存储在栈(stack)中的简单数据段,占据空间小,大小固定,属于被频繁使用的数据,所以放入栈中存储;
引用数据类型存储在堆(heap)中的对象,占据空间大,大小不固定,如果存储在栈中,将会影响程序运行的性能,引用数据类型在栈中存储了指针,该指针指向堆中该尸体的起始地址。当解释器寻找引用值,会首先检索其在栈中的地址,取得地址后从堆中获取实体;