JS内存空间详解如何深入理解?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2427个文字,预计阅读时间需要10分钟。
目录概述
一、栈与堆
二、变量对象与基本数据类型
三、引用数据类型与堆内存
内存空间管理概述变量对象与堆内存var a=20; var b='abc'; var c=true; var d={ m: 20 }; 在非常长的一段时间里,被认为...目录
- 概述
- 一、栈与堆
- 二、变量对象与基础数据类型
- 三、引用数据类型与堆内存
- 内存空间管理
概述
变量对象与堆内存
var a = 20; var b = 'abc'; var c = true; var d = { m: 20 }
在很长一段时间里认为内存空间的概念在JS的学习中并不是那么重要。可是后我当我回过头来重新整理JS基础时,发现由于对它们的模糊认知,导致了很多东西我都理解得并不明白。比如最基本的引用数据类型和引用传递到底是怎么回事儿?比如浅复制与深复制有什么不同?还有闭包,原型等等。
因此后来我才渐渐明白,想要对JS的理解更加深刻,就必须对内存空间有一个清晰的认知。
一、栈与堆
注:栈,也可以叫堆栈
与C/C++不同,JavaScript中并没有严格意义上区分栈内存与堆内存。因此我们可以粗浅的理解为JavaScript的所有数据都保存在堆内存中。但是在某些场景,我们仍然需要基于堆栈数据结构的思路进行处理,比如JavaScript的执行上下文(关于执行上下文我会在下一篇文章中总结)。执行上下文在逻辑上实现了堆栈。因此理解堆栈数据结构的原理与特点任然十分重要。
本文共计2427个文字,预计阅读时间需要10分钟。
目录概述
一、栈与堆
二、变量对象与基本数据类型
三、引用数据类型与堆内存
内存空间管理概述变量对象与堆内存var a=20; var b='abc'; var c=true; var d={ m: 20 }; 在非常长的一段时间里,被认为...目录
- 概述
- 一、栈与堆
- 二、变量对象与基础数据类型
- 三、引用数据类型与堆内存
- 内存空间管理
概述
变量对象与堆内存
var a = 20; var b = 'abc'; var c = true; var d = { m: 20 }
在很长一段时间里认为内存空间的概念在JS的学习中并不是那么重要。可是后我当我回过头来重新整理JS基础时,发现由于对它们的模糊认知,导致了很多东西我都理解得并不明白。比如最基本的引用数据类型和引用传递到底是怎么回事儿?比如浅复制与深复制有什么不同?还有闭包,原型等等。
因此后来我才渐渐明白,想要对JS的理解更加深刻,就必须对内存空间有一个清晰的认知。
一、栈与堆
注:栈,也可以叫堆栈
与C/C++不同,JavaScript中并没有严格意义上区分栈内存与堆内存。因此我们可以粗浅的理解为JavaScript的所有数据都保存在堆内存中。但是在某些场景,我们仍然需要基于堆栈数据结构的思路进行处理,比如JavaScript的执行上下文(关于执行上下文我会在下一篇文章中总结)。执行上下文在逻辑上实现了堆栈。因此理解堆栈数据结构的原理与特点任然十分重要。

