169 похожих чатов

Как с точки зрения контекста выполнения объяснить, что function foo() {

bar = "foo"
}
делает bar глобальной переменной?

5 ответов

10 просмотров

Так нету префикса var, let, const

так же как и с функциями и другими объектами, обращается к глобальной переменной, можете посмотреть в браузере: console.log(window.bar);

Alex-Illarionov Автор вопроса
Anton Piliugin
так же как и с функциями и другими объектами, обра...

Нет, именно сточки зрения интерпретатора как это работает. В случае с глобальной var создаётся глобальный контекст выполнения, в нём создаётся лексическая среда, в неё хоистится var = undefined, всё ок. В случае с let const лексическая среда привязана к функцуии или к блоку (ну или глобально). Всё ок. Я не могу понять, почему function foo() { bar = "foo" } Делает bar именно глобальной, хотя по всей логике должен относится к лексической среде foo?

Alex Illarionov
Нет, именно сточки зрения интерпретатора как это р...

Если я не ошибаюсь, так работало до появления let и const.

Alex Illarionov
Нет, именно сточки зрения интерпретатора как это р...

Ты пытаешься что-то присвоить переменной без её объявления через var, let, const Раньше это всплывало в поисках этой переменной до глобальной области видимости и там уже она создавалась В strict mode это контроллируется и просто вызовет ошибку

Похожие вопросы

Обсуждают сегодня

Добрый верчер, а стоит ли использовать lea для вычислений произвольных значений, как замена add/imul?
strewg
28
У меня такой вопрос. Вот мне нужно сделать бинарный файл с ассемблер кода: [bits 32] [org 0x7c00] start: cli mov esp, stack_space call _main hlt section .tex...
Dmytro Parkhomenko
26
@FAssembler не знаешь, fasm поддерживает thumb?
Александр Белокопытов
46
Сколько гигабайт у тебя набирается?
Maksim Lapshin
16
Вот сравним знания, которые требуются, чтобы знать все эти условности С компилятора, и знания, которые требуются чтобы писать программы на ассемблере. Что проще?
КТ315
23
Фуух, победила раскраску. Ну почти) Кому что посчитать? )))
Катерина Свиридова
18
Наивный вопрос, а можно в лазарус как-то оптом сохранить состояние всех элементов интерфейса приложения перед его закрытием, например?
Кокошник наголо
13
model small .stack 256 .data arr db 16 dup(?) mes db 10, 13, "Enter 16 numbers: $" mes1 db " $" mes2 db 10, 13, "Sorted: $" mes3 db 10, 13, "$" i db 0 .code ...
Ыиу
42
Вопрос, кто-то пользует в реальности очереди вапоровские?swift run App queues --scheduled
Keiman
9
Ребят нубский вопрос, но я в поиске чата не нашел ничего об этом. Установил я clang, Code-Blocks ( который с wingw). Пытаюсь запустить свой хелловорлд, а мне пишет fatal error...
Дима Копышов
15
Карта сайта