foundation

Runtime APIs и глобальные объекты

window, document, process, Buffer, таймеры, доступность fetch и API, специфичные для окружения.

Семантика языка общая; host-окружения различаются. Браузеры дают `window`, `document`, DOM, storage и rendering APIs. Node даёт `process`, `Buffer`, `fs`, streams и сеть.

`fetch` есть в обоих, но детали различаются. Доступ к `window` при SSR выбрасывает ошибку. Полифил Node API в браузере раздувает bundle.

Код в workers, SSR, тестах и CLI может не иметь одинаковых глобалов.

На интервью объясняйте концепцию на конкретном примере и называйте поведение рантайма, которое проверяют.

Компромисс часто между ясностью и производительностью или между безопасностью и удобством.

Чеклист:

  • Отделяйте язык от host APIs.
  • Защищайте browser globals при SSR.
  • Тестируйте в целевом runtime.