JavaScript — не просто язык. Это целая панацея в веб-разработке. Иногда нужно фиксировать свой прогресс при обучении. В этой статье с помощью 7 вопросов проверим, насколько ты профи в JS. Closure — это когда функция "помнит" переменные из окружающей области, даже если выполняется где-то там, вне неё. Функция внутри держит count как свой приватный счётчик. Это полезно, когда нужен state в JavaScript. Promise — это обещание: выполнить операцию или сказать, что что-то пошло не так. Он помогает писать цепочки асинхронных операций без того ада из callbacks. JS исполняется пошагово. Всё синхронное идёт сразу в стек, промисы — в микро‑очередь, а setTimeout — в макро‑очередь. Пример: Выведет: Start
End
Promise
Timeout Промисы выполняются раньше! Это баг из далёких времён. Внутренне null хранится как 0 в типовой системе, а у объектов — тоже 0. В итоге typeof null === "object" — технически неправильно, но изменить уже нельзя, чтобы не ломать старый код. Сначала ![] превращается в false, потом