我記得:
C++:
它會在這種情況下生成100個不同的實例變量(JS vs C++)嗎?
for(int i= 0; i< 100;i++)
{
int number= 3;
}
我們將使用相同的名稱100個不同的實例變量,但在C++變量是塊範圍,所以(但佔用100次存儲器中作爲唯一的一個變量。)當循環結束時,100個變量將被回收。
相反的Javascript:
JS:
for(var i=0; i < 100 ;i++)
{
var number= 3;
}
就會產生100個不同的變量?或者我們只有一個名爲數字的變量,其值爲
3
。
我的意思是這些變量實際花費了多少內存?如果for循環不是由
function(){}
包裹,什麼是回收這給變量(一個或多個)的存儲器的機制?好吧,那是原始類型變量。如果變量是對象,它會不同嗎?
只是爲了澄清,因爲下面的語句與JS相關,所以關於C++的最初聲明是錯誤的。變量「number」的範圍正好是'{int number = 3}',即每次循環迭代它將被創建和銷燬一次。破壞後,其內存可以重用(並將由任何中途體面的編譯器重用)。所以它不會佔用一個變量的100倍的內存。 –