подъем и закрытие - путаница - PullRequest
0 голосов
/ 11 ноября 2018

Подъемно:

console.log(h)
var h = 1

Возвращает undefined, поскольку объявление перемещается в начало, но значение присваивается после console.log(), вот так:

var h;
console.log(h)
h = 1

Теперь это возвращает 1, что не понятно, поскольку в моем понимании оно должно быть точно таким же, как указано выше

Закрытие: Почему console.log() как функция не может получить доступ к глобальной переменной h в первом примере?

был бы очень рад, если бы sb помог мне здесь. спасибо!

1 Ответ

0 голосов
/ 11 ноября 2018

Действительно, эти 2 случая похожи, так что же здесь происходит?

Я думаю, что вы немного одурачены своей консолью. Ваша консоль всегда что-то регистрирует, когда вы в любом случае выполняете команду. Вы можете прочитать эту запись , чтобы лучше узнать о том, что возвращается вашей консолью по умолчанию, когда вы делаете h=1; и var h=1;.

почему console.log () как функция не может получить доступ к глобальной переменной h в первом примере? : На самом деле он обращается к глобальной переменной h. Но поскольку для h еще не присвоено значение, консольный журнал возвращает undefined, что в основном означает, что переменная h существует, но ее значение не определено. Если бы он не нашел переменную h, он вместо этого возвратил бы ошибку, сообщающую, что h is not defined, что может сбивать с толку, но не совпадает с undefined

...