Они позволяют сохранять состояние между вызовами функций, делать приватные данные и собирать фабрики функций прямо на лету.
В посте разберём:
• Как замыкания «помнят» окружение;
• Как с их помощью создавать счётчики без глобальных переменных;
• Как строить фабрики функций и даже скрытые свойства объектов.
Это не трюк, а фундамент 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
This media is not supported in your browser
VIEW IN TELEGRAM
Список актуальных рекомендаций и шаблонов для тех, кто хочет писать на Node.js. Архитектура, обработка ошибок, безопасность, тестирование, деплой, производительность, Docker. Все практики собраны, проверены, снабжены примерами и сравнениями.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥7❤5🤝1
Простой парсер погоды с выводом текущей температуры!
Напишем скрипт, который берет данные о погоде в вашем городе и выводит их в удобном виде.
Задаем функцию, которая получает данные с API Open-Meteo:
Координаты вашего города (например, Москва):
Выведем температуру и скорость ветра:
🔥 Получаем свежие данные о погоде — полезно для проектов или ботов!
📣 JS Ready | #практика
Напишем скрипт, который берет данные о погоде в вашем городе и выводит их в удобном виде.
Задаем функцию, которая получает данные с API Open-Meteo:
async function getWeather(lat, lon) {
const url = `https://api.open-meteo.com/v1/forecast?latitude=${lat}&longitude=${lon}¤t_weather=true`;
const res = await fetch(url);
return (await res.json()).current_weather;
}Координаты вашего города (например, Москва):
const moscowCoords = [55.45, 37.37];
Выведем температуру и скорость ветра:
getWeather(...moscowCoords).then(weather => {
console.log(`Температура: ${weather.temperature}°C, Ветер: ${weather.windspeed} км/ч`);
});🔥 Получаем свежие данные о погоде — полезно для проектов или ботов!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤10🔥6