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

Cотрудничество: @energy_c
Download Telegram
📱 Сегодня разбираем 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
📱 Аналитика активности в чате по времени сообщений!

Скрипт на JavaScript позволяет определить, в какие часы пользователь чаще всего пишет. Это полезно для чат-ботов, рассылок и анализа поведения пользователей.

В задаче:
• Подсчитаем часы отправки сообщений.

• Определим количество сообщений в каждый час.

• Найдём пиковый час активности пользователя.

• Сделаем вывод о предполагаемой таймзоне и активности.


В итоге получим мини-аналитику, которую можно использовать в проектах с чатами, логами и системами статистики.

📣 JS Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥11❤5
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ Code Basics — отличный интерактивный ресурс для изучения JavaScript и не только!

Здесь обучение превращено в пошаговый практический курс: ты сразу пишешь код в браузере, решаешь задачи, проверяешь результат и закрепляешь навыки. Идеально подходит для новичков, которые хотят быстро освоить синтаксис.

📌 Оставляю ссылочку: code-basics.com

📣 JS Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15🔥10👍5
📱 Event Loop и очередь задач!

Почему setTimeout и Promise.then ведут себя по-разному? Всё дело в том, как работает очередь задач в JavaScript: macrotask vs microtask.

В этом гайде:
• Что такое Event Loop и зачем он нужен.

• Разница между macrotask и microtask.

• Почему промисы выполняются раньше таймаутов.

• Как смоделировать порядок выполнения асинхронного кода.


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

📣 JS Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍12❤7👎3
Игра "Угадай число"

Создадим интерактивную консольную игру с попытками угадать число.

Подключим readline для ввода и зададим основные параметры:
const readline = require("readline")
const rl = readline.createInterface({ input: process.stdin, output: process.stdout })

const min = 1, max = 100
const secret = Math.floor(Math.random() * (max - min + 1)) + min


Создадим базовую функцию для игры — простое угадывание без ограничений:
const ask = () => {
rl.question(`Угадай число [${min}-${max}]: ` , (ans) => {
const guess = Number(ans)
if (guess === secret) {
console.log('🎉 Верно!')
return rl.close()
}
console.log(guess > secret ? "Меньше!" : "Больше!")
ask()
})
}

console.log("🎮 Добро пожаловать в игру!")
ask()


🔥 В следующей части добавим систему ограниченных попыток и счетчик, чтобы игра стала более сложной!

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