JavaScript получает ошибку без инициализированного значения глобальной переменной


person Tom    schedule 09.09.2013    source источник
comment
аналогичный stackoverflow.com/questions/3725546/variable-hoisting   -  person Musa    schedule 09.09.2013
comment
Я понял! Спасибо за вашу помощь!   -  person Tom    schedule 09.09.2013


Ответы (2)


Как указал Муса, JS сначала выполняет объявления переменных (в контексте, в котором вы находитесь). поэтому, если вы когда-нибудь определите переменную с var внутри своего контекста, она будет известна со значением undefined. Поскольку вы все равно должны объявлять свои переменные, а не полагаться на глобальную область, вы всегда должны использовать вторую. Если вы хотите использовать первый по определенной причине, вы можете написать его так:

if (window.h === undefined) {
    h = 4;
}
person Levi    schedule 09.09.2013

Вам нужно инициализировать переменную h вне блока для получения желаемого результата... Javascript не имеет области блока. Но не всегда работает нормально, сказал Д. Крокфорд.

person Ashisha Nautiyal    schedule 09.09.2013
comment
Извините, друзья, я не имел в виду. я пропустил не туда - person Ashisha Nautiyal; 09.09.2013