js中的堆和栈
今天又去温故了一下堆和栈,就记录一下自己的理解吧
说堆和栈之前先说说js的数据类型:
基本数据类型:number, string, boolean, null, undefined
复合数据类型:object,array
我们的基本数据类型就是存储在栈中的
// eg:
var name = "张三"
var copyName = name
// 栈内存: 当我们通过关键字var一个变量出来的时候,其实就是在栈中开辟了一个空间,然后将值放进去,当我们要使用栈内存中的值的时候,系统会给复制我们需要的内容,然后在赋值给我们需要的地方
var obj = {}
var objCopy = obj
// 堆内存 :堆一般用来存对象的,堆和栈的最明显的区别就是,当我们要使用栈中的值的时候,我们采用的赋址的方式,等于给了一个新的指针,指针指向的位置就是我们的内容