Почему этот простой код из JavaScript неправильно поднимает переменную?

1

Я пытаюсь понять подъем переменных JavaScript, и я путаюсь с документацией, указанной Mozilla.

Документация, на которую я ссылаюсь, находится здесь:

console.log(x === undefined); // true
var x = 3;

Я использую консоль разработчика в Google Chrome, чтобы протестировать этот код последней версии. Когда я выполняю приведенный выше код, я получаю false, когда в документации Mozilla указано, что он должен быть возвращен как true.

Изображение 174551

Этот вывод выше означает, что x определенно устанавливается в 3 до запуска console.log(). Эта документация, указанная Mozilla, неверна или я чего-то не понимаю?

  • 2
    Консоль разработчика использует eval , который имеет другие правила.
  • 0
    Попробуйте запустить обе строки отдельно, и вы увидите true после первого.
Показать ещё 1 комментарий
Теги:
var

2 ответа

2
Лучший ответ

Он вернет true при первом запуске, потому что x начинается с undefined. После запуска
var x = 3, x устанавливается в 3, поэтому при следующем запуске сравнения console.log(x === undefined) возвращается значение false, поскольку x больше не является undefined.

0

я запускаю его в Mozilla и Chrome, и это правда: впервые ответ верен, потому что он не определен, но будет неверным в следующий раз. Ответ не меняется после очистки консоли, и вы должны перезапустить браузер.

Сообщество Overcoder
Наверх
Меню