В шпаргалке собраны основные техники создания классов, инициализации объектов, наследования и вызова родительских методов. Приёмы применяются при проектировании архитектуры, создании масштабируемых компонентов и работе с объектными моделями.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥7👍3🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь собрана огромная база реальных вопросов по бэкенду, DevOps, Data Science и другим направлениям. Всё структурировано по темам и приближено к формату собеседований в компаниях. Это именно тот ресурс, который нужно держать под рукой!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥7❤4🤝1
Разбираем Optional chaining для методов с аргументами!
Создаём объекты с методом и без:
Вызываем метод с аргументом безопасно:
Динамический вызов метода через переменную:
Используем цепочки методов безопасно:
🔥 Это делает код компактным, безопасным и полностью динамичным. Подходит для работы с внешними данными и API.
📣 JS Ready | #практика
Optional chaining (?.()) позволяет безопасно вызывать методы с параметрами, даже если объект или метод отсутствует. Это устраняет необходимость в проверках if или try/catch и делает код компактным и надёжным.Создаём объекты с методом и без:
const user = {
name: "Alice",
greet(msg) { console.log(`${msg}, ${this.name}!`); }
};
const guest = { name: "Guest" };Вызываем метод с аргументом безопасно:
user.greet?.("Hello"); // Hello, Alice!
guest.greet?.("Hello"); // ничего не происходитДинамический вызов метода через переменную:
const methodName = "greet";
user[methodName]?.("Hi"); // Hi, Alice!
guest[methodName]?.("Hi"); // безопасно, ошибки нет
Используем цепочки методов безопасно:
const bio = user.profile?.getBio?.();
console.log(bio); // undefined, если profile или getBio отсутствует
🔥 Это делает код компактным, безопасным и полностью динамичным. Подходит для работы с внешними данными и API.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍9🔥6
🔥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