什么决定了JS中的存储类型?它与原始类型与引用类型有什么关系吗?
我来自 C++/python 背景。阅读这个问题的答案和评论,我遇到了一些相互不兼容(甚至内部不一致)的陈述:
从接受的答案:
Primitive values是存储在堆栈上的数据。Primitive value直接存储在变量访问的位置。Reference values是存储在堆中的对象。Reference value存储在变量 location 中的是指向存储对象的内存位置的指针。
从评论来看:
值是存储在堆栈上还是堆上并不由它们在 JS 中的类型决定。它取决于存储它的变量的生命周期(受范围,尤其是闭包的影响,并取决于引擎的分析能力)。
来自投票最高的答案:
JavaScript 没有堆栈或堆。它是一种动态语言,JavaScript 中的所有变量都是动态的。[...] JavaScript 中的所有值(原语和对象)都是从堆中分配的。甚至变量本身也是从堆中分配的。
有人可以澄清或向我推荐技术上正确的解释吗?如果该方法依赖于实现,我会很感激参考实现中的差异。
| 归档时间: |
|
| 查看次数: |
1072 次 |
| 最近记录: |