Обычно я бы объявлял переменную со значением следующим образом:
var foo = "I am foo";
Но недавно я видел имя переменной, объявленное первым, а затем значение, назначенное позже так: var foo;
foo = "I am foo";
Какая польза от этого?
Никакой "выгоды" в частности. Но для этого требуются определенные ситуации, в первую очередь условные декларации:
var foo;
if (bar) {
foo = 'baz';
} else {
foo = 42;
}
Использование var
оба раза в пределах if..else
было бы ошибкой или, по крайней мере, вводить в заблуждение. Если вы используете let
вместо var
, это приведет к неправильному изменению переменной.
Преимущество только вступает в игру, если вы не знаете, какое значение вы собираетесь назначить ему, вместо того, чтобы повторно назначить значение. например
var foo;
if(someCond){
foo = "this";
} else if(someOtherCond){
foo = "that";
}