вторник, 18 июня 2013 г.

JavaScript Хитрое определение переменных внутри условных выражений и циклов.

if (true) {
    var a = 1;
}

alert(a); // 1

В JavaScript эта конструкция эквивалентна следующему

Определение a переносится вверх (в функции под заголовок функции)

var a; // тут a = 'undefined'

if (true) {
    a = 1; // тут a присваиваем значение a
}

alert(a); // 1

Если бы было так, то

if (false) {
    var a = 1;
}

alert(a); // 'undefined'

так как

var a; // тут a = 'undefined'

if (false) { // сюда мы не переходим
    a = 1;
}

alert(a); // 'undefined'

Комментариев нет:

Отправить комментарий