У меня есть Sublimelinter, установленный в Sublime Text 2, и это здорово. Однако это не так, как следующий код:Неправильно ли объявлять переменную внутри оператора if в Javascript?
if(condition){
var result = 1;
}else{
var result = 2;
}
process(result);
Это говорит для var result = 2;
, что результат уже определен и process(result);
, что он используется вне области видимости. Это просто спутать с {}
КРП заявления для более закрытой сферы или не должен я действительно делать это так:
var result;
if(condition){
result = 1;
}else{
result = 2;
}
process(result);
Я не буду оспаривать другие ответы, но я думаю, что это плохая привычка находиться. Семантика 'var' несколько странная в JavaScript, и они только становятся более странными, когда у вас есть условный код, например что. – Pointy
http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting – jasssonpet
Отлично читаю @jasssonpet – Jake