2

可能重复:
如何为脚本语言中的变量分配内存?

在javascript中,由于它是一种松散类型的语言,所以当我编写代码时:

var foo;

正是在这一步之后分配了多少内存块。我din分配任何东西给它,当我输入

var foo = 10;

var foo = "this is random"

在这两种情况下,分配了多少字节的内存?

4

1 回答 1

1

我不确定具体细节,这取决于实现,但这是我的猜测。

简单地做var foo;不会创建任何新对象。但是, foo 可能需要添加到已声明变量的字典中,在这种情况下为字符串foo和可能的元数据分配空间,假设它没有被实习。

当您这样做时var foo = 10;var foo = "this is random"它会分别创建字符串或整数变量,这通常会占用内存。然而,小整数和常量字符串几乎可以肯定是实习的。另外,JIT 可能会优化对普通机器整数的数字引用,在这种情况下它根本不会占用任何额外的内存。

无论如何,很难对具有不同实现的高级语言的性能进行具体说明,尤其是在涉及 JIT 时。

于 2012-08-19T18:51:46.960 回答