Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍10🔥5🤝1
Когда объект может быть «пустым» — опциональная цепочка спасает от ошибок!
Во вложенных данных из API часто отсутствуют поля. Вместо длинных проверок
Объект может быть
Если вложенный объект не задан — доступ просто вернёт
Когда структура полная — опциональная цепочка работает как обычный доступ:
🔥 Опциональная цепочка работает для свойств, методов, индексов и повышает надёжность кода при работе с внешними данными.
📣 JS Ready | #практика
Во вложенных данных из API часто отсутствуют поля. Вместо длинных проверок
if — используем ?. для безопасного доступа без исключений. Объект может быть
null, но доступ к свойству не должен ломать код:const user = null;
console.log(user?.name);
Если вложенный объект не задан — доступ просто вернёт
undefined:const user = {};
console.log(user?.profile?.email);Когда структура полная — опциональная цепочка работает как обычный доступ:
const user = { settings: { theme: 'dark' } };
console.log(user.settings?.theme);🔥 Опциональная цепочка работает для свойств, методов, индексов и повышает надёжность кода при работе с внешними данными.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤7🔥7
Когда пользователь начал что-то менять, но передумал — важно вернуть всё как было. Это снижает число ошибок и облегчает работу с формами.
В этой задаче:
• Сохраним начальные данные при загрузке.
• Сравним текущие значения с изначальными.
• Добавим кнопку отката и логику обновления.
• Сделаем реализацию универсальной и лаконичной.
Конечный результат — готовый механизм сброса, который легко встроить в профиль, настройки или любую редактируемую форму.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍10🔥8
👍11🔥8❤6
This media is not supported in your browser
VIEW IN TELEGRAM
LearnJS — русскоязычный учебник, от базовых понятий до продвинутых тем чтобы освоить JS!
Удобные объяснения, примеры кода, интерактивные задания помогут прокачать навыки как новичкам, так и опытным разработчикам.
📌 Оставляю ссылочку: learnjs.ru
📣 JS Ready | #сайт
Удобные объяснения, примеры кода, интерактивные задания помогут прокачать навыки как новичкам, так и опытным разработчикам.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤10🔥5🤝2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥10❤8🤝3
Группировка данных по ключу!
При работе с табличными данными, API-ответами или логами часто нужно группировать записи по определённому признаку — роли, категории, дате.
Исходный массив объектов — типичный кейс из API:
📣 JS Ready | #практика
При работе с табличными данными, API-ответами или логами часто нужно группировать записи по определённому признаку — роли, категории, дате.
Исходный массив объектов — типичный кейс из API:
const users = [
{ name: "Alice", role: "admin" },
{ name: "Bob", role: "user" },
{ name: "Eve", role: "admin" },
];
Используем reduce как агрегатор. В одну строку — и читаемо, и производительно:
const grouped = users.reduce((acc, u) => {
(acc[u.role] ||= []).push(u);
return acc;
}, {});
Теперь grouped.admin и grouped.user содержат списки пользователей по ролям. Получить нужную подгруппу — просто:
console.log(grouped["user"]); // [{ name: "Bob", role: "user" }]
🔥 Такой приём универсален для списков любых сущностей — от заказов до логов, и легко адаптируется под бизнес-логику.Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤8🔥6🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
От сортировок и форматирования даты до уникальных хаков с массивами и объектами — всё в одном месте. Подходит как шпаргалка и как источник решений для повседневных задач. Каждый сниппет объяснён и готов к применению.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍6🔥6
Сегодня создадим минималистичный стор — простой инструмент для хранения состояния с подписками, который позволяет автоматически реагировать на изменения данных.
В этом посте:
• Напишем методы get, set и subscribe для работы с состоянием.
• Реализуем механизм подписки и отписки от обновлений.
• Свяжем стор с обновлением DOM для динамического интерфейса.
Этот навык — отличный фундамент для понимания работы популярных фреймворков и построения собственных реактивных приложений с нуля.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤9👍5