Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18🔥11🤝6
WeakMap — приватные свойства без классов!
Методы для работы с приватными данными. Пароль напрямую не получить:
Когда объект удаляется — данные тоже становятся недостижимыми. Очистка происходит автоматически при сборке мусора:
Важно: ключами
🔥 Инкапсуляция без классов — данные живут и умирают вместе с объектом.
📣 JS Ready | #практика
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 могут быть только объекты.🔥 Инкапсуляция без классов — данные живут и умирают вместе с объектом.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17🤝9❤6
Скрипт на JavaScript позволяет определить, в какие часы пользователь чаще всего пишет. Это полезно для чат-ботов, рассылок и анализа поведения пользователей.
В задаче:
• Подсчитаем часы отправки сообщений.
• Определим количество сообщений в каждый час.
• Найдём пиковый час активности пользователя.
• Сделаем вывод о предполагаемой таймзоне и активности.
В итоге получим мини-аналитику, которую можно использовать в проектах с чатами, логами и системами статистики.
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
Здесь обучение превращено в пошаговый практический курс: ты сразу пишешь код в браузере, решаешь задачи, проверяешь результат и закрепляешь навыки. Идеально подходит для новичков, которые хотят быстро освоить синтаксис.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15🔥10👍5
Почему
setTimeout и Promise.then ведут себя по-разному? Всё дело в том, как работает очередь задач в JavaScript: macrotask vs microtask.В этом гайде:
• Что такое Event Loop и зачем он нужен.
• Разница между macrotask и microtask.
• Почему промисы выполняются раньше таймаутов.
• Как смоделировать порядок выполнения асинхронного кода.
Это знание помогает писать предсказуемый код, избегать неожиданных багов и уверенно работать с асинхронностью.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍12❤7👎3
Игра "Угадай число"
Создадим интерактивную консольную игру с попытками угадать число.
Подключим
Создадим базовую функцию для игры — простое угадывание без ограничений:
🔥 В следующей части добавим систему ограниченных попыток и счетчик, чтобы игра стала более сложной!
📣 JS Ready | #практика
Создадим интерактивную консольную игру с попытками угадать число.
Подключим
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()🔥 В следующей части добавим систему ограниченных попыток и счетчик, чтобы игра стала более сложной!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤10👍6
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥10❤5🤝2