За каждым свойством стоит дескриптор — флаги
writable, enumerable, configurable, а также get и set. Через них движок решает, что можно менять, а что нет.В этом гайде:
• Разберём, как движок хранит метаданные свойств;
• Создадим настоящие readonly-поля;
• Сделаем computed-свойство с валидацией;
• Поймём, как freeze() и seal() просто массово меняют флаги.
Так дескрипторы превращают объекты из простых структур в механизмы с правилами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7🔥6🤝1
Знали, что fetch-запрос можно отменить прямо из JS?
Когда пользователь меняет фильтр или быстро вводит новый текст, старые запросы продолжают работать и мешают актуальным данным.
Если запрос больше не нужен, просто “абортим”:
При отмене
🔥 Деталь, которая делает код предсказуемым даже под нагрузкой.
📣 JS Ready | #совет
Когда пользователь меняет фильтр или быстро вводит новый текст, старые запросы продолжают работать и мешают актуальным данным.
AbortController создаёт сигнал, который можно “прикрепить” к fetch:const controller = new AbortController();
fetch('/api/data', { signal: controller.signal });
Если запрос больше не нужен, просто “абортим”:
controller.abort();
При отмене
fetch выбрасывает AbortError — это нормально, можно отловить и проигнорировать:fetch(url, { signal: controller.signal })
.catch(err => {
if (err.name !== 'AbortError') throw err;
});🔥 Деталь, которая делает код предсказуемым даже под нагрузкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍9🔥7
В этой шпаргалке собраны основные приёмы и функции для работы с ошибками: try, catch, finally, throw, а также логирование и проверка типов ошибок. Они применяются при работе с API, асинхронными операциями и бизнес-логикой. Умение правильно обрабатывать ошибки делает код устойчивым и предсказуемым.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤7🔥6
4 способа скопировать массив без мутаций!
Чтобы избежать случайных изменений исходных данных, важно уметь создавать независимую копию массива.
1. Spread-оператор (поверхностная копия — вложенные объекты остаются по ссылке)
2. Метод
3. Метод
Поддерживает преобразование элементов:
4. Глубокая копия через JSON (если есть вложенные данные), но теряет функции, undefined и даты
🔥 Эти приёмы помогают писать стабильный и предсказуемый код, особенно при работе со сложными структурами.
📣 JS Ready | #практика
Чтобы избежать случайных изменений исходных данных, важно уметь создавать независимую копию массива.
1. Spread-оператор (поверхностная копия — вложенные объекты остаются по ссылке)
const arr = [1, 2, 3];
const copy = [...arr];
2. Метод
slice() (поведение как у spread — неглубокое копирование)const arr = [1, 2, 3];
const copy = arr.slice();
3. Метод
Array.from() const arr = [1, 2, 3];
const copy = Array.from(arr);
Поддерживает преобразование элементов:
const doubled = Array.from(arr, x => x * 2); // [2, 4, 6]
4. Глубокая копия через JSON (если есть вложенные данные), но теряет функции, undefined и даты
const arr = [{ id: 1 }, { id: 2 }];
const deepCopy = JSON.parse(JSON.stringify(arr));🔥 Эти приёмы помогают писать стабильный и предсказуемый код, особенно при работе со сложными структурами.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍10🔥7
Сегодня создаём мини-модель искусственного нейрона с весами, активацией и наглядной визуализацией его работы. Поймём, как данные проходят через сеть и превращаются в результат.
В этой задаче:
• Реализуем скалярное произведение и сигмоиду вручную;
• Собираем несколько нейронов в слой и выполняем forward-pass;
• Добавляем консольную визуализацию, чтобы увидеть, как «думает» сеть.
Такая практика помогает понять, почему разные функции активации ведут себя по-разному.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥10👍6🤝4
This media is not supported in your browser
VIEW IN TELEGRAM
Inline Preview решает это за секунду. Выделяешь нужный кусок разметки и vsсode мгновенно показывает рендер прямо в редакторе. Особенно удобно при работе с email-шаблонами, SSR-разметкой или отдельными UI-компонентами, когда нужно быстро проверить кусок, а не весь проект.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤9👍6