2013-10-04 64 views
3

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

+0

JavaScript实际上并没有分配内存。很可能不同的实现使用不同的方法。 – Kninnug

+0

该类型是从上下文推导出来的,类型决定了变量需要的内存。 –

+0

有关V8 Javascript引擎如何表示Javascript的概述,请参见本文[V8参考:对象表示](http://www.jayconrod.com/posts/52/a-tour-of-v8-object-representation)对象。 –

回答

1

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