可能重复:
如何为脚本语言中的变量分配内存?
在javascript中,由于它是一种松散类型的语言,所以当我编写代码时:
var foo;
正是在这一步之后分配了多少内存块。我din分配任何东西给它,当我输入
var foo = 10;
和
var foo = "this is random"
在这两种情况下,分配了多少字节的内存?
可能重复:
如何为脚本语言中的变量分配内存?
在javascript中,由于它是一种松散类型的语言,所以当我编写代码时:
var foo;
正是在这一步之后分配了多少内存块。我din分配任何东西给它,当我输入
var foo = 10;
和
var foo = "this is random"
在这两种情况下,分配了多少字节的内存?
我不确定具体细节,这取决于实现,但这是我的猜测。
简单地做var foo;
不会创建任何新对象。但是, foo 可能需要添加到已声明变量的字典中,在这种情况下为字符串foo
和可能的元数据分配空间,假设它没有被实习。
当您这样做时var foo = 10;
,var foo = "this is random"
它会分别创建字符串或整数变量,这通常会占用内存。然而,小整数和常量字符串几乎可以肯定是实习的。另外,JIT 可能会优化对普通机器整数的数字引用,在这种情况下它根本不会占用任何额外的内存。
无论如何,很难对具有不同实现的高级语言的性能进行具体说明,尤其是在涉及 JIT 时。