Замыкания (Closures)
Замыкание — это функция вместе со своим лексическим окружением. Замыкания позволяют функциям «помнить» переменные из внешней области видимости.
▸Пример
1function createCounter() {2 let count = 0;3 return function() {4 return ++count;5 };6}
Промисы и async/await
▸Промисы
Промис — это объект, представляющий результат асинхронной операции.
▸Async/await
Синтаксический сахар над промисами. Делает асинхронный код более читаемым.
Event Loop
JavaScript использует однопоточный event loop для обработки асинхронных операций:
Call stack — выполняет синхронный код
Callback queue — очередь колбэков
Microtask queue — очередь промисов
Прототипы и наследование
JavaScript использует прототипное наследование:
this в JavaScript
Значение this зависит от контекста вызова:
Деструктуризация
Удобный способ извлечения значений из объектов и массивов.
Spread/Rest операторы
1const arr = [1, 2, 3];2const copy = [...arr]; // spread3function sum(...args) { return args.reduce((a,b) => a+b); } // rest
Map, Filter, Reduce
Методы массивов для функционального программирования:
Заключение
JavaScript — мощный и гибкий язык. Понимание его основных концепций критически важно для успешного собеседования.
Практикуйтесь с вопросами из нашего раздела.