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

Cотрудничество: @energy_c
Download Telegram
📱 Проверяем, были ли изменения в объекте!

В интерфейсах с формами важно понять — пользователь что‑то изменил или всё осталось как было? Это влияет на логику сохранения, показ предупреждений и экономию запросов.

В этой задаче:
• Сравним объекты по значениям, а не по ссылкам.
• Обработаем разный порядок ключей.
• Научим функцию понимать вложенность.
• Сделаем компактную и универсальную. реализацию.


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

📣 JS Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥10❤6🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Знал ли ты, что можно открыть браузер прямо в VS Code?

Даже скачивать ничего не нужно, ведь всё уже встроено в редактор. Как и что можно настроить показано на видео выше от Miguel Ángel Durán

📣 JS Ready | #vscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤7🔥3😁2
Озвучка текста на странице!

Нативный JavaScript умеет читать вслух любой текст на странице, это часть Web Speech API.

Начнём с базового: озвучим строку с помощью SpeechSynthesisUtterance.
const msg = new SpeechSynthesisUtterance("Привет, мир");
speechSynthesis.speak(msg);


Добавим функцию, чтобы переиспользовать и задавать любой текст:
function speak(text) {
const msg = new SpeechSynthesisUtterance(text);
speechSynthesis.speak(msg);
}


Теперь можно вызывать так:
speak("Текущая температура: 22 градуса и ясно");


Далее прикрутим к горячей клавише. Пусть Ctrl + R озвучит рандомный совет:
document.addEventListener("keydown", (e) => {
if (e.ctrlKey && e.key === "r") {
speak("Не забывай пить воду и делать перерывы");
}
});


🔥 Голосовой ассистент в одну строчку готов. Можно подключать к уведомлениям, ботам, виджетам — или просто добавить в пасхалку на сайте.

📣 JS Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍11❤8
📱 Управляем событиями!

Сегодня создадим систему событий, которая позволяет модулям общаться друг с другом напрямую. Такой подход упрощает архитектуру и делает код независимым и масштабируемым.

В этом посте:
• Создаём класс-рассыльщик событий.

• Подписываемся и отписываемся от событий.

• Реагируем на события в разных модулях.

• Изолируем и расширяем логику через события.


Идеально для: динамических UI, плагинов, игровых и интерактивных систем.

📣 JS Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍15🔥7🤝1
📱 Разбираем методы преобразования массивов!

Эти методы помогают сортировать, копировать, разворачивать и объединять данные. Особенно полезны при работе с состоянием, отображением списков и подготовкой данных к отправке или отображению.

📣 JS Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤12👍11🤝1
Фильтруем объекты по ключу и значению!

В разработке часто нужно фильтровать списки объектов по динамическим критериям. Это помогает отбирать нужные данные из API, работать с таблицами и списками.

Например, есть массив пользователей с разными статусами:
const data = [
{ id: 1, status: "active" },
{ id: 2, status: "inactive" },
{ id: 3, status: "active" },
];


Напишем универсальную функцию, которая принимает массив, ключ и искомое значение. Она вернёт только те объекты, где значение поля совпадает:
function filterByKey(arr, key, value) {
return arr.filter(item => item[key] === value);
}


Используем функцию для получения только активных пользователей:
const active = filterByKey(data, "status", "active");
console.log(active); // объекты со статусом "active"


🔥 Такой приём пригодится в любой работе с данными — валидации, отображении и логике.

📣 JS Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥8👍7