В этой шпаргалке собраны основные команды для диагностики и анализа кода: вывод данных, измерение времени, группировка логов и работа с ошибками. Эти инструменты помогают быстрее находить проблемы, понимать поток выполнения и поддерживать код в чистом состоянии.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤7👍7
Сегодня создаём простую утилиту, которая по системным настройкам показывает ваш часовой пояс.
В этой задаче:
• Получаем смещение от UTC с помощью getTimezoneOffset();
• Форматируем часы и минуты в читаемый формат UTC±H[:MM];
• Добавляем название часовой зоны через Intl.DateTimeFormat.
Такая практика помогает глубже понять, как JS хранит время и почему без учёта смещения легко запутаться при логировании и API-запросах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍8🤝7❤1
JS может не только считать и анимировать, он способен озвучивать текст и понимать речь.
Сегодня в гайде:
• Добавим синтез речи с выбором голоса и скорости;
• Реализуем простое распознавание голоса;
• Объединим всё в мини-ассистента, который “слышит” и отвечает.
Демонстрация того, что JS не просто язык логики, а инструмент, который способен делать интерфейсы живыми и отзывчивыми на голос!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍8❤7🤝1
Знаете, что функция может сама запоминать свои результаты и работать в десятки раз быстрее?
Это называется мемоизация — приём, когда результаты вычислений кешируются и повторно не считаются.
Часто пишут лишние конструкции:
Но в JavaScript есть Map, он делает это в одну строку, безопасно и элегантно:
Здесь
📣 JS Ready | #совет
Это называется мемоизация — приём, когда результаты вычислений кешируются и повторно не считаются.
Часто пишут лишние конструкции:
function slowFn(x) {
if (!cache[x]) cache[x] = x ** 2;
return cache[x];
}Но в JavaScript есть Map, он делает это в одну строку, безопасно и элегантно:
const slowFn = x => cache.get(x) ?? cache.set(x, x ** 2).get(x);
Здесь
?? проверяет наличие значения, а Map гарантирует надёжность даже для сложных ключей — объектов, массивов, функций.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6🤝6❤2
Реактивный объект на JavaScript!
Реализуем объект, который отслеживает обращения к своим свойствам и изменения данных — пример работы с метапрограммированием и механизмом Proxy.
Создаём исходный объект:
Сначала определим реакцию на чтение данных:
Теперь добавим обработку изменений свойств:
Проверяем поведение:
🔥 Такой подход лежит в основе реактивных систем и используется для отслеживания состояния без дополнительных обёрток.
📣 JS Ready | #практика
Реализуем объект, который отслеживает обращения к своим свойствам и изменения данных — пример работы с метапрограммированием и механизмом Proxy.
Создаём исходный объект:
const user = { name: "Alex", age: 25 };Сначала определим реакцию на чтение данных:
const reactive = new Proxy(user, {
get(target, key, receiver) {
if (typeof key === "symbol") return Reflect.get(target, key, receiver);
console.log(`Чтение: ${String(key)}`);
return Reflect.get(target, key, receiver);
},Теперь добавим обработку изменений свойств:
set(target, key, value, receiver) {
if (typeof key !== "symbol") {
console.log(`Изменение: ${String(key)} = ${value}`);
}
return Reflect.set(target, key, value, receiver);
}
});Проверяем поведение:
reactive.name; // Чтение: name
reactive.age = 30; // Изменение: age = 30
🔥 Такой подход лежит в основе реактивных систем и используется для отслеживания состояния без дополнительных обёрток.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🤝8❤7