1. Чем глобальный контекст в браузере отличается от Node.js?
В браузере глобальным объектом является
window, а в Node.js — global. В браузере код ориентирован на работу с DOM и Web API, а в Node.js — на файловую систему и серверные задачи. Кроме того, в Node.js каждый файл имеет собственный модульный контекст, а не общий глобальный scope, как в браузере. Это влияет на область видимости переменных и поведение this.2. Как происходит приведение типов при нестрогом сравнении?
При нестрогом сравнении
== JavaScript пытается привести операнды к одному типу. Правила зависят от типов значений: строки могут превращаться в числа, null и undefined считаются равными друг другу, а объекты приводятся к примитивам. Эти преобразования не всегда очевидны, из-за чего сравнение может вести себя неожиданно. Именно поэтому в большинстве случаев рекомендуют использовать ===.3. Что произойдёт при использовании var в цикле с асинхронным кодом?
При использовании
var в цикле все асинхронные колбэки будут ссылаться на одну и ту же переменную. К моменту выполнения асинхронного кода цикл уже завершится, и переменная будет иметь финальное значение. В результате вместо ожидаемых разных значений выводится одно и то же. Это происходит из-за функциональной, а не блочной области видимости var.4. Как влияют скрипты на блокировку рендеринга?
Скрипты могут блокировать рендеринг, потому что браузер должен остановить парсинг HTML, загрузить и выполнить JavaScript. Это нужно, так как скрипт может изменить DOM или CSS. Пока синхронный скрипт не выполнен, браузер не продолжает строить DOM и не может корректно рендерить страницу. Атрибуты
defer и async позволяют уменьшить или убрать эту блокировку.5. Как обычно организуется архитектура фронтенд-приложения
Фронтенд-архитектура обычно строится вокруг разделения по слоям или фичам. Часто используют feature-based подход, где каждая фича изолирована. Общие части выносятся в shared-слой. Архитектура должна упрощать поддержку, тестирование и масштабирование.
#global #object #type #coercion #var #closure #loop #render #blocking #frontend #architecture