1.栈内存和内存
栈内存:存放的是局部变量和全局变量(基本数据类型 Number,String,Boolean,Undefined,Null)。
堆内存:存放的是数组和对象(引用数据类型 Object)
2.图示栈内存和堆内存
栈内存
定义变量a,a的值为123
定义变量b,将a的值赋给b,此时在栈内存中b的值也为123
变量a进行自增,变为124,但是b在栈内存中的值仍为123
堆内存
定义一个对象obj,在栈内存中变量为obj,值为引用地址(0x123),指向堆中内存地址,也称为指针。在堆内存中开辟了一块内存空间,内存地址为0x123
给obj添加name属性,值为张三,在堆内存中添加
定义变量obj2,将obj赋值给obj2,在栈内存中存储变量obj2,引用地址也为0x123,共同指向一个内存地址
给obj2添加name属性,值为李四,此时修改的是堆内存中的值
若将obj2赋值为null,此时引用地址断开,不在指向堆内存(不会改变obj的值)
若同时定义对象obj,obj2,他们的引用地址不同,所以在堆内存中开辟2个内存空间,互不影响。