🔥14👍4🤝4❤2
Они позволяют сохранять состояние между вызовами функций, делать приватные данные и собирать фабрики функций прямо на лету.
В посте разберём:
• Как замыкания «помнят» окружение;
• Как с их помощью создавать счётчики без глобальных переменных;
• Как строить фабрики функций и даже скрытые свойства объектов.
Это не трюк, а фундамент JavaScript. Освоив их, вы сможете писать гибкий, чистый и предсказуемый код.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥5❤4🤝2
Генерируем безопасные API-токены с Crypto API
Создадим токен используя случайную соль,
Импортируем библиотеку и создаём генератор случайной соли:
Формируем HMAC-токен с секретным ключом, сообщением и включаем
Проверяем генерацию токенов для разных сообщений:
🔥
📣 JS Ready | #практика
Создадим токен используя случайную соль,
timestamp и криптографически безопасные функции.Импортируем библиотеку и создаём генератор случайной соли:
// Node.js
const crypto = require("crypto");
function generateSalt(length = 16) {
return crypto.randomBytes(length); // → случайная соль (байты)
}
Формируем HMAC-токен с секретным ключом, сообщением и включаем
timestamp:function generateToken(secretKey, message) {
const salt = generateSalt().toString("base64url");
const ts = Math.floor(Date.now() / 1000); // timestamp токена
const payload = `${salt}.${ts}.${message}`;
const sig = crypto.createHmac("sha256", secretKey)
.update(payload)
.digest("base64url");
return `${salt}.${ts}.${sig}`;
}Проверяем генерацию токенов для разных сообщений:
const secret = "supersecretkey";
["user1", "user2", "admin"].forEach(msg => {
console.log(generateToken(secret, msg));
});
// пример: AbC123...1694698123...QxYz09...
🔥
timestamp нужен для проверки срока действия токена. При валидации сравниваем его с текущим временем и отклоняем устаревшие токены.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍8🤝4
Сделаем маленький каркас, где игрок выбирает действия, а игра реагирует на них - как в старых консольных квестах.
В этом посте:
• Реализуем хранение состояния игры;
• Добавим ввод действий игрока и обработку их логики;
• Настроим вывод текста и переход между состояниями;
• Получим базовый движок, который легко расширить до квеста или RPG.
Такой подход тренирует работу с циклами, объектами и обработкой событий в JS, а ещё даёт фундамент для будущих игровых проектов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9🤝6👍4❤2
This media is not supported in your browser
VIEW IN TELEGRAM
CodeHype — это бесплатная платформа для изучения JavaScript и других языков. Краткие шпаргалки и заметки для быстрого повторения материала, примеры реальных проектов и задач, все супер полезно!
📌 Оставляю ссылочку: codehype.in
📣 JS Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤6🔥5🤝3👎2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍7❤5