JavaScript内存管理概述

不管什么样的编程语言,在代码的执行过程中都是需要给它分配内存的,不同的是某些编程语言需要我们自己手动的管理内存,

某些编程语言会可以自动帮助我们管理内存:

不管以什么样的方式来管理内存,内存的管理都会有如下的生命周期:

 第一步:分配申请你需要的内存(申请);

第二步:使用分配的内存(存放一些东西,比如对象等);

第三步:不需要使用时,对其进行释放;

不同的编程语言对于第一步和第三步会有不同的实现:

手动管理内存:比如C、C++,包括早期的OC,都是需要手动来管理内存的申请和释放的(malloc和free函数);

自动管理内存:比如Java、JavaScript、Python、Swift、Dart等,它们有自动帮助我们管理内存;

对于开发者来说,JavaScript 的内存管理是自动的、无形的。

我们创建的原始值、对象、函数……这一切都会占用内存;

但是我们并不需要手动来对它们进行管理,JavaScript引擎会帮助我们处理好它;

JavaScript会在定义数据时为我们分配内存。

但是内存分配方式是一样的吗?

JS对于原始数据类型内存的分配会在执行时,

直接在栈空间进行分配;

JS对于复杂数据类型内存的分配会在堆内存中

开辟一块空间,并且将这块空间的指针返回值

变量引用;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容