JavaScript Ready | Программирование
8.18K subscribers
989 photos
60 videos
527 links
Авторский канал по разработке на JavaScript.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!

Cотрудничество: @energy_c
Download Telegram
📱 Определяем часовой пояс пользователя!

Сегодня создаём простую утилиту, которая по системным настройкам показывает ваш часовой пояс.

В этой задаче:
• Получаем смещение от UTC с помощью getTimezoneOffset();

• Форматируем часы и минуты в читаемый формат UTC±H[:MM];

• Добавляем название часовой зоны через Intl.DateTimeFormat.


Такая практика помогает глубже понять, как JS хранит время и почему без учёта смещения легко запутаться при логировании и API-запросах.

📣 JS Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍8🤝7❤1
📱 Speech & Voice в JavaScript — добавляем голос в интерфейс!

JS может не только считать и анимировать, он способен озвучивать текст и понимать речь.

Сегодня в гайде:
• Добавим синтез речи с выбором голоса и скорости;

• Реализуем простое распознавание голоса;

• Объединим всё в мини-ассистента, который “слышит” и отвечает.


Демонстрация того, что JS не просто язык логики, а инструмент, который способен делать интерфейсы живыми и отзывчивыми на голос!

📣 JS Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍8❤7🤝1
Знаете, что функция может сама запоминать свои результаты и работать в десятки раз быстрее?

Это называется мемоизация — приём, когда результаты вычислений кешируются и повторно не считаются.

Часто пишут лишние конструкции:
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 гарантирует надёжность даже для сложных ключей — объектов, массивов, функций.

📣 JS Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6🤝6❤2
Реактивный объект на JavaScript!

Реализуем объект, который отслеживает обращения к своим свойствам и изменения данных — пример работы с метапрограммированием и механизмом 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


🔥 Такой подход лежит в основе реактивных систем и используется для отслеживания состояния без дополнительных обёрток.

📣 JS Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🤝8❤7
😁23❤6👍3🔥2🤝2
📱 Разбираем работу с окнами и браузером!

В этой шпаргалке собраны методы и свойства объектов window и navigator: управление окнами, вкладками, адресами, буфером обмена и прокруткой. Эти инструменты применяются при создании интерактивных интерфейсов, обработке навигации и интеграции с системными API браузера.

📣 JS Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥6❤5🤝2