我的另一篇博客
堆(heap):先进先出,栈(stack)先进后出
浅拷贝是一个传址,
也就是把a的值赋给b的时候同时也把a的址赋给了b,
当b(a)的值改变的时候,a(b)的值同时也会改变
深拷贝:拷贝对象的具体内容,内存地址是自主分配的。
拷贝结束之后俩个对象虽然存的值是一样的,但是内存地址不一样。
俩个对象页互相不影响,互不干涉
栈会自动分配内存空间,会自动释放,存放简单类型,简单的数据段,占据固定大小的空间。
基本数据类型:String,Number,Boolean,Null,Undefined等
动态分配的内存,大小不定也不会自动释放,存放引用类型,指那些可能由多个值构成的对象,保存在堆内存中,包含引用类型的变量,实际上保存的不是变量本身,而是指向该对象的指针-----也可以说是地址。
复杂(引用)类型:Function,Array,Object
堆内存中的对象不会随方法的结束而销毁,就算方法结束了,这个对象也可能被其他引用变量所引用(参数传递)。
简单数据类型是在栈里直接开辟一个空间存放它的值。复杂数据类型则是在栈里开辟一个空间存放它内容的地址,这个地址指向存放在堆里的内容