Как декларативные и объектные записи окружения относятся к "var", "let" и "const"?

Я пытаюсь углубиться в javascript, и хотя я нашел объяснения различий между "var", "let" и "const", а также объяснения ES6 "записи среды" (декларативные и объектные), я все еще потеряно, почему следующий код работает так, как он работает, когда я набираю его в консоли браузера Google Chrome:

var a = 2;
let b = 4;

console.log(window.a); // 2
console.log(window.b); // undefined

console.log(a); // 2
console.log(b); // 4

Если console.log(b) печатает 4, но console.log(window.b) печать undefinedтогда какой объем b определяется в?

Я понимаю что когда var используется вне функции, создает undefined переменная в глобальной области видимости. Я не понимаю, что происходит, когда let или же const используется вне функции, как в примере выше?

На основании других ответов я предполагаю, что это поведение как-то связано с записями среды ES6, но когда я читаю справочник, оно действительно не имеет смысла для меня.

Может ли кто-нибудь объяснить это несколько проще, чем в этом справочнике?

0 ответов

Другие вопросы по тегам