Раннее мы выкладывали задачу
Правильный ответ:
JS делит выполнение на две фазы:
1. Инициализация (создание окружения) — компилятор видит
let a = 2
внутри функции и создаёт для неё локальную переменную a
.2. Выполнение — когда доходит до
console.log(a)
, движок уже знает о локальной a
, но она ещё не инициализирована.⚠️ Поэтому обращение к ней до строки
let a = 2
вызывает ReferenceError, даже если код в if
не выполнится.#code_challenge #js
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤6👍2
Иногда после API-запроса или сборки данных в объекте куча undefined — их не видно, но они мешают при сериализации, сравнении и логах.
const clean = obj => Object.fromEntries(
Object.entries(obj).filter(([_, v]) => v !== undefined)
);
— пробегается по всем парам [ключ, значение],
— выкидывает те, где значение undefined,
— возвращает новый “чистый” объект.
clean({ name: 'Alex', age: undefined, city: 'Berlin' });
// => { name: 'Alex', city: 'Berlin' }
— перед отправкой данных на сервер,
— при сборке форм,
— при логировании чистых JSON.
const clean = obj =>
Object.fromEntries(
Object.entries(obj)
.filter(([_, v]) => v !== undefined)
.map(([k, v]) => [k, v && typeof v === 'object' && !Array.isArray(v) ? clean(v) : v])
);
— рекурсивно чистит вложенные объекты,
— не трогает массивы,
— остаётся компактной и читаемой.
#readme #js
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥2
Переменная «живет» после выхода из функции, а память не освобождается.
Мы собрали 4 карточки, чтобы разобраться, как именно это устроено под капотом
#under_hood #js
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5⚡1🔥1
API URLPattern — это простой и мощный инструмент для сопоставления и валидации URL.
#stack #js
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🥰2