javascript - JavaScript 中的值存储在哪里?

标签 javascript stack heap-memory

我听说在 JavaScript 中,基本类型存储在堆栈上,而对象存储在堆上。对于所有情况,甚至对于函数执行范围内的值,都是如此吗?此外,所有全局范围的变量和函数都存储在 JavaScript 中的全局对象(浏览器中的窗口)上吗?这是否被视为“堆”或堆的一部分?或者原始类型本身存储在堆栈上,引用类型存储在堆上,然后将标识符作为属性添加到全局对象并指向堆栈/堆上的这些值?

最佳答案

没有堆也没有栈。 JavaScript 的内存模型非常抽象。事物如何最终进入计算机内存完全取决于引擎。鉴于现代引擎执行了大量优化,即使在不同的优化阶段,值也可能最终出现在内存的不同区域,所以人们真的无法判断。

关于javascript - JavaScript 中的值存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61276391/

相关文章:

javascript - 使用 onclick 函数传递参数时,应将其读取为字符串,但将其读取为变量

在 C 中创建堆栈,节点结构

c - 为什么 malloc 向 sbrk 请求不合理的内存量。什么可以阻止它?

python - 总分配超过堆内存的 95.00%(960,285,889 字节)- pyspark 错误

java - 内存不足...Java 堆已满 (Ax)

javascript - 使用 JavaScript 在外部站点上按下按钮

javascript - 解析的列表项未正确显示在 appcelerator 中

javascript - ember.js - 从数组中提取不同的属性

machine-learning - 当向预训练的 CNN 添加层时,您是添加到开头还是后面。它像队列还是堆栈?

c - 有没有办法保存和恢复C中的调用堆栈