Найти в Дзене
16 часов назад
 • Вы подписаны

structuredClone(): зачем он нужен, если мы годами жили с JSON

Копировать объект в JavaScript вроде бы несложно. Для поверхностной копии есть: const copy = { ...original } Но вложенные объекты при этом остаются общими. const original = { user: { name: 'Alex' } } const copy = { ...original } copy.user.name = 'Bob' console.log(original.user.name) // Bob И вот когда нужна была настоящая глубокая копия, многие годы в коде появлялось вот это: const copy = JSON.parse( JSON.stringify(original) ) Работает? Да. Пока объект не становится хоть немного интереснее...

3 дня назад
 • Вы подписаны

will-change: CSS-свойство, которое может сделать страницу медленнее

Название у will-change звучит почти как встроенная кнопка оптимизации. Нужно ускорить анимацию? .card { will-change: transform; } Готово. Браузер предупреждён, GPU насторожился, 60 FPS где-то уже едут к нам. Только есть проблема: will-change не означает «сделай быстрее». Он означает: «Я собираюсь менять вот это свойство. Можешь заранее подготовиться». А подготовка иногда стоит дороже, чем сама анимация. Очень упрощённо путь элемента до экрана выглядит примерно так: Style -> Layout -> Paint -> Composite Сначала браузер выясняет, какие стили применяются...

1 неделю назад
 • Вы подписаны

Почему 0.1 + 0.2 !== 0.3 — и при чём тут вообще двоичная система? Классика: 0.1 + 0.2 // 0.30000000000000004 На первый взгляд кажется, что JavaScript просто решил немного поиздеваться. Но проблема не в JavaScript как таковом. Числа типа 0.1 и 0.2 нельзя точно представить в двоичной системе — примерно как 1 / 3 нельзя точно записать конечной десятичной дробью. Поэтому компьютер хранит ближайшее возможное значение. И когда эти маленькие погрешности складываются, иногда наружу вылезает хвост: 0.30000000000000004 Поэтому сравнивать дробные вычисления через строгое равенство — не всегда хорошая идея. Например, обычно проверяют разницу: Math.abs(a - b) < Number.EPSILON Главная мысль: компьютер не “ошибается в математике” — он просто хранит некоторые дроби приблизительно. И да, иногда этого хватает, чтобы сломать расчёт денег на пару копеек и подарить тебе прекрасный вечер с дебаггером.

1 неделя назад
 • Вы подписаны

А Next.js точно нужен каждому React-проекту?

Есть один довольно удобный способ выбрать стек для нового React-проекта. Открываем терминал: npx create-next-app Enter. Готово. Архитектурное решение принято примерно за семь секунд. Можно закрывать Jira и идти пить кофе. И самое смешное — Next.js действительно может оказаться отличным выбором. Он умеет роутинг, серверный рендеринг, работу на сервере, разные стратегии получения данных и ещё небольшой вагон вещей, ради которых раньше приходилось собирать вокруг React целую компанию друзей. Проблема начинается в другом месте...

Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала
Покупайте СтеллыИ дарите их за контент