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.