内存空间
在JS执行过程中,有三种类型内存空间,代码空间、栈空间、堆空间。
代码空间
代码空间是用来存储可执行的代码的。
栈空间、堆空间
栈空间的内存比较小,堆空间的内存大,一般用来存储引用数据类型的值。
function foo(){
var a = "闷倒驴";
var b = a;
var c = {name:"王美丽"};
var d = c;
}
foo()
为什么存储在堆空间的数据存储在栈空间中
- 栈空间的大小一般不会设很大
- 如果将数据存储在栈空间中,会影响代码的执行效率
- JS引擎需要用栈来维护程序执行期间上下文的状态
栈空间与堆空间的特点
- 栈空间的大小一般不会设很大,用来存储基本数据类型的数据值,对于引用数据类型,存储的是地址值,堆空间的大小一般很大,用来存储引用数据类型的数据。