4

我有 C 背景,我刚刚开始学习 Javascript。在 C 中,当我创建一个变量并对其进行初始化时,(例如int foo),堆栈中为我的变量保留了空间。为不同类型(例如int, bool, unsigned int, double)保留不同数量的空间。在 Javascript 中只有一种类型 ( var) 我可以将其实例化为字符串文字 (Ex. var person="John Doe";) 或数字 (Ex. var x=5;)。Javascript 如何在不知道需要为变量分配多少空间的情况下存储这些值?

4

1 回答 1

1

Javascript 是动态类型的,并使用自动内存分配和回收。从实现的角度来看,你可以想象每个变量都是某种数据指针和函数指针的集合;更准确地说,就像 C++ 中的多态基类指针。但是,对象的内存由运行时环境为您管理,不需要手动干预。某种垃圾收集是一种可能的实现。

于 2013-10-04T23:16:46.190 回答