可能重複:
Difference between using var and not using var in JavaScript「var」在JavaScript中做什麼?爲什麼它有時是任務的一部分?
var foo = 1;
foo = 1;
是什麼上述兩條線之間的區別?
可能重複:
Difference between using var and not using var in JavaScript「var」在JavaScript中做什麼?爲什麼它有時是任務的一部分?
var foo = 1;
foo = 1;
是什麼上述兩條線之間的區別?
基本上,var
聲明一個變量,你也可以同時分配給它。
沒有var
,它分配給變量。分配將分配給現有變量或創建該名稱的全局變量,然後分配給它。
功能之外,這意味着如果變量不存在,就沒有實質性區別(原則上)。在這種情況下,都會創建全局變量foo
。
在以內有一個函數,有很大的差別。第一個創建函數的局部變量,不管它是否存在於其他地方。
第二個將創建一個全局變量,如果它不存在,或者只是更改值,如果它存在。
爲了保持代碼儘可能模塊化,你應該始終使用除非var
你特別想改變現有的全局變量。這意味着用var
聲明函數外的所有全局變量,並用var
聲明所有本地變量。
功能外也有區別。你可以這樣做obj.prop,你不能做var obj.prop! –
@Chintan,這可能更多的是因爲'obj.prop'實際上不是一個新變量,而是一個現有'obj'變量的屬性。 – paxdiablo
在第一種情況下,foo將在其定義的相同範圍內可用,即它將是局部變量。 第二種情況foo是一個全局變量,位於全局範圍內。
您正在使用哪個JavaScript教程/書籍? (這是一個相當基本的話題。) – 2011-11-09 01:57:18