Junior JavaScript
Экспресс-шпаргалка 20/20
varимеет функциональную область видимости и hoisting сundefined.letиconstимеют блочную область видимости и TDZ.constнельзя переназначить.==сравнивает с приведением типов,===сравнивает без приведения. В прод-коде почти всегда используют===.undefinedобычно означает "значение не задано",null— "значение задано как пустое намеренно".- Примитивы копируются по значению, объекты/массивы/функции копируются по ссылке.
- Hoisting — поднятие объявлений вверх области видимости. TDZ — период до инициализации
let/const, когда доступ к переменной запрещен. thisопределяется местом вызова функции, а не местом ее объявления.- Замыкание — функция, которая сохраняет доступ к переменным внешней функции после ее завершения.
- Если свойства нет у объекта, движок ищет его в прототипе, затем в прототипе прототипа и так далее до
null. - Event Loop координирует выполнение call stack и очередей задач, чтобы однопоточный JS мог обрабатывать асинхронные операции.
async/await— синтаксис поверх Promise, который делает асинхронный код более читаемым.- Microtasks выполняются сразу после текущего синхронного кода и до следующей macrotask.
mapпреобразует каждый элемент,filterотбирает элементы по условию,reduceсводит массив к одному значению.- Debounce откладывает вызов до паузы в событиях, throttle ограничивает частоту вызова фиксированным интервалом.
- Shallow copy копирует только первый уровень, deep copy — все вложенные уровни.
...в выражении — spread (раскрывает), в параметрах/деструктуризации — rest (собирает остаток).- Деструктуризация позволяет извлекать значения из объектов и массивов в переменные.
- Иммутабельность делает изменения состояния предсказуемыми, упрощает отладку и помогает оптимизациям рендера.
- Cookie отправляются на сервер с запросом,
localStorageживет между сессиями,sessionStorageочищается при закрытии вкладки. - CORS — механизм браузера, который регулирует междоменные запросы через специальные HTTP-заголовки.
- Обычный
scriptблокирует парсинг HTML.asyncзагружается параллельно и выполняется сразу после загрузки.deferзагружается параллельно и выполняется после парсинга DOM в порядке подключения.
1. В чем разница между var, let и const?
Теги: javascript, variables, scope, hoisting
Сложность: Junior
Короткий ответ
var имеет функциональную область видимости и hoisting с undefined. let и const имеют блочную область видимости и TDZ. const нельзя переназначить.