可能重复:
How is the memory allocation done for variables in scripting languages?
在javascript中,因为它是一种松散类型的语言,当我编写代码时:
var foo;
在此步骤之后,分配了多少块内存。我给它分配任何东西,当我输入
时var foo = 10;
和
var foo = "this is random"
在这两种情况下分配了多少字节的内存?
答案 0 :(得分:1)
我不确定具体是什么,具体取决于实现,但这就是我猜的。
简单地执行var foo;
不会创建任何新对象。但是,foo可能需要添加到声明变量的字典中,在这种情况下,字符串foo
的空间和可能的元数据被分配,假设它没有被实现。
当你执行var foo = 10;
或var foo = "this is random"
时,它会分别创建字符串或整数变量,这通常会占用内存。然而,小的整数和常数字符串几乎肯定是固定的。此外,JIT可能会优先考虑普通机器整数的数字引用,在这种情况下它根本不需要任何额外的内存。
无论如何,很难说具有不同实现的高级语言的性能,特别是涉及JIT时。