2013-10-04 116 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++中的多態基類指針。但是,對象的內存由運行時環境管理,不需要手動干預。某種垃圾收集可能是一種實現。