我在Sublime Text 2中安裝了Sublimelinter,它很棒。然而,它並不像下面的代碼:在Javascript中的if語句中聲明一個變量是錯誤的嗎?
if(condition){
var result = 1;
}else{
var result = 2;
}
process(result);
它說,此結果已被定義var result = 2;
併爲它的使用超出範圍process(result);
。難道僅僅是弄錯if語句的{}
一個更封閉的範圍或應我真的會做這樣的:
var result;
if(condition){
result = 1;
}else{
result = 2;
}
process(result);
我不會對其他答案提出質疑,但我認爲這是一個壞習慣。var的語義在JavaScript中有點奇怪,當你有條件代碼時它們只會變得很奇怪那。 – Pointy
http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Histing1 – jasssonpet
大閱讀@jasssonpet – Jake