Вопрос проверяет понимание различий сред выполнения JavaScript и их глобальных объектов.
В браузере глобальным объектом является window, а в Node.js — global. В браузере код ориентирован на работу с DOM и Web API, а в Node.js — на файловую систему и серверные задачи. Кроме того, в Node.js каждый файл имеет собственный модульный контекст, а не общий глобальный scope, как в браузере. Это влияет на область видимости переменных и поведение this.
JavaScript один, но среда выполнения — разная.
Определение: Глобальный объект — объект верхнего уровня, через который доступно окружение выполнения JavaScript.
В браузере:
глобальный объект — window
доступен DOM (document)
глобальный this указывает на window
console.log(this === window); // true
В Node.js:
глобальный объект — global
нет DOM
каждый файл — отдельный модуль
console.log(this === global); // false
Переменные, объявленные в файле, не попадают напрямую в global.
код для браузера нельзя напрямую запускать в Node.js
библиотеки часто делают проверки окружения
важно для SSR и универсального JavaScript
Вывод: глобальный контекст зависит от среды: в браузере это window, в Node.js — global, и правила области видимости отличаются.