变量的存储 -- 栈和堆的区别

Posted nick-qiu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了变量的存储 -- 栈和堆的区别相关的知识,希望对你有一定的参考价值。

引用:

彻底搞懂JS闭包各种坑 - 简书 (jianshu.com)

1. js中基本变量和对象的内存存储:

 

 

 

 

 

 

2. 

js栈和堆的区别

一、  堆(heap)和栈(stack)

栈(stack)会自动分配内存空间,会自动释放。堆(heap)动态分配的内存,大小不定也不会自动释放。

二、  基本类型和引用类型

基本类型:简单的数据段,存放在栈内存中,占据固定大小的空间。

引用类型:指那些可能由多个值构成的对象,保存在堆内存中,包含引用类型的变量实际上保存的不是变量本身,二十指向该对象的指针。

基本数据类型包括Undefined,String,Boolean,Null,Number

三、  传值和传址

从一个向另一个变量复制引用类型的值,复制的其实是指针,因此两个变量最终指向同一个对象。即复制的是栈中的地址而不是堆中的对象。

从一个变量复向另一个变量复制基本类型的值,会创建这个值的副本。
————————————————
版权声明:本文为CSDN博主「WISH_MENG」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhangmeng1020/article/details/62887458

以上是关于变量的存储 -- 栈和堆的区别的主要内容,如果未能解决你的问题,请参考以下文章

Java中栈和堆的区别

js栈和堆的区别

Java栈和堆的区别

单片机中栈和堆的区别是啥?

JVM栈和堆的详解

栈和堆有什么不同之处