var a = 1;
a = 2
Если надо объявить переменную внутри цикла стоит ли делать var a = '';
до цикла и уже внутри переопределять, или лучше делать var a = 1
сразу внутри цикла (и каждую итерацию она будет переопределяться) var
всегда «сползает» наверх функции – это называется var hoisting («поднятие или всплытие переменных»). Объявление переменных (как и любые другие объявления) обрабатываются до выполнения кода. Где бы не находилось объявление, это равнозначно тому, что переменную объявили в самом начале кода.
for( /*...*/ ) {
var i = 3;
// ...
}
var i;
// ...
for( /*...*/ ) {
i = 3;
// ...
}
var a=1;
function f() {
var b=2;
window.c=3;
console.log(a,b,c);
}
console.log(a,b,c);