JavaScript Ready | Программирование
8.19K subscribers
989 photos
60 videos
527 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
👍21❤8🔥8🤝1
Таймер обратного отсчёта на JS!

Научим JS считать время до события и выводить оставшееся в консоль.

Сначала напишем функцию форматирования:
function formatTime(ms) {
const sec = Math.floor(ms / 1000) % 60;
const min = Math.floor(ms / 60000) % 60;
const hr = Math.floor(ms / 3600000);
return `${hr}ч ${min}м ${sec}с`;
}


Теперь создадим функцию обратного отсчёта:
function countdown(targetTime) {
const tick = () => {
const diff = targetTime - Date.now();
if (diff <= 0) {
clearInterval(interval);
console.log("Время вышло!");
}


Проверяем условие окончания обратного отсчёта:
    else {
console.log(formatTime(diff));
}
};
tick();
const interval = setInterval(tick, 1000);
}

countdown(Date.now() + 10000);


🔥 Это легкий способ создать обратный отсчет для событий и уведомлений!

📣 JS Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17🔥7👍6🤝2
📱 Процесс создания мини-игры на ООП!

Сегодня создадим небольшой симулятор боя, чтобы наглядно показать силу классов и наследования.
На примере героев и врагов разберём, как ООП помогает структурировать код и делать его ближе к реальным моделям.

В этом посте:
• Базовый класс с общими свойствами.

• Реализуем наследников: Hero и Enemy.

• Добавим атаки и систему здоровья.

• Смоделируем простой бой.


В итоге вы увидите, как легко расширять и управлять логикой игры с помощью ООП.

📣 JS Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍6❤5🤝4😁1
📱 Сегодня разбираем Intl API

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

📣 JS Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18🔥11🤝6
WeakMap — приватные свойства без классов!

WeakMap привязывает данные к объектам, делая их недоступными извне. Создаем приватное хранилище:
const privateData = new WeakMap();

function createUser(name) {
const user = { name };
privateData.set(user, { password: 'secret123' }); // для примера
return user;
}


Методы для работы с приватными данными. Пароль напрямую не получить:
function getPassword(user) {
return privateData.get(user)?.password;
}

function setPassword(user, newPassword) {
const data = privateData.get(user) || {};
data.password = newPassword;
privateData.set(user, data);
}


Когда объект удаляется — данные тоже становятся недостижимыми. Очистка происходит автоматически при сборке мусора:
let user = createUser('Иван');
console.log(getPassword(user)); // 'secret123'

user = null; // запись исчезнет после GC


Важно: ключами WeakMap могут быть только объекты.

🔥 Инкапсуляция без классов — данные живут и умирают вместе с объектом.

📣 JS Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17🤝9❤6