我有一個腳本這幾條線長,我有很多標誌類型的,像這樣是否需要JSlint警告「重新聲明var counter」?
var counter = 0;
var carFlags = {
Audio : counter++ ,
Bentley : counter++ ,
Chrysler : counter++
Datsun : counter++
...
};
以後如果我創建了一個新的標誌對象以相同的方式
var counter = 0;
var nameFlags = {
Ashley : counter++ ,
Bronwyn : counter++ ,
Catherine : counter++
DakotaFanning : counter++
...
};
它抱怨計數器用作更大聲明的一部分,但我認爲這裏完全可以接受。但是,我在這裏使用了兩次計數器,所以它警告redeclaration of var counter
。我可以將var counter
移動到頁面的頂部,但這可能會使其不太清楚counter
的用途。多次使用var有沒有真正的問題?我有一個delete counter
聲明,但它什麼也沒做。我應該將其更改爲delete window.counter
?
這樣的當時的分支if語句並不構成變量範圍(如在C/C++)? –
@StefanMajewsky正確的,JavaScript中的變量沒有被限定爲像if語句的then分支那樣的代碼塊。 JavaScript變量僅限於函數或全局範圍。 –