JS内存空间详解如何深入理解?

更新于
2026-09-26 13:14:21
0阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2427个文字,预计阅读时间需要10分钟。

JS内存空间详解如何深入理解?

目录概述

一、栈与堆

二、变量对象与基本数据类型

三、引用数据类型与堆内存

内存空间管理概述变量对象与堆内存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分钟。

JS内存空间详解如何深入理解?

目录概述

一、栈与堆

二、变量对象与基本数据类型

三、引用数据类型与堆内存

内存空间管理概述变量对象与堆内存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的执行上下文(关于执行上下文我会在下一篇文章中总结)。执行上下文在逻辑上实现了堆栈。因此理解堆栈数据结构的原理与特点任然十分重要。

阅读全文