javascript 引用类型 基本类型的数据 堆内存 栈内存
黄舟
黄舟 2017-04-10 17:22:34
[JavaScript讨论组]

javascript 引用类型的数据存放在堆内存,基本类型的数据存放在栈内存。
我的疑问是,引用类型的数据最终也是由基本类型的数据组成的,那组成应用类型的这些基本类型的数据存放在堆内存还是栈内存?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
ringa_lee

你这么理解是有误区的,你把两个概念揉在一起了。简单的说并不是引用类型就存在堆内存,基础类型就存在栈内存。这两个概念不能一概而论。

对于你所描述的,复合数据类型也是由基础类型组成的,那他们存在哪?这里并不是看他们是什么类型来决定他们存在哪,而是要看他们的声明方式来决定他们存在哪。

存储在栈内存中的,主要是根据程序逻辑明确需要申请的内存,也就是在编译或者解析代码时就能知道这块内存是必须申请的。
而存储在堆内存中的,大多是动态申请的内存,也就是程序执行后才能知道这块内存是否需要申请的。

在Javascript中,复合数据类型都以对象的形式存在,而对象基本都是以new的方式申请内存的,所以基本上所有的复合数据都存储在堆内存中。注意,这里是指对象内的数据,而大部分的对象指针,也就是对象的引用,都是以栈内存的形式申请的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号