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

Cотрудничество: @energy_c
Download Telegram
📱 Детектор подозрительных логинов по IP!

Проверяем входы пользователей и определяем, были ли они с разных стран за короткий промежуток времени.

В этом посте:
• Обогащаем логи информацией о стране по IP;

• Сортируем входы по времени для корректного анализа;

• Считаем разницу во времени между событиями;

• Фиксируем подозрительные «невозможные перемещения».


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

📣 JS Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥9👍7
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ JavaScript Questions — огромная коллекция вопросов и ответов по JS!

От хитрых нюансов типов данных и замыканий до глубокой логики this и работы событийного цикла - здесь разжёвано то, что обычно путает даже опытных разработчиков. Каждый пример сопровождается пояснением!

Оставляю ссылочку: GitHub 📱


📣 JS Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍8🔥5
📱 Разбираем приёмы работы с классами и прототипами!

В шпаргалке собраны основные техники создания классов, инициализации объектов, наследования и вызова родительских методов. Приёмы применяются при проектировании архитектуры, создании масштабируемых компонентов и работе с объектными моделями.

📣 JS Ready | #шпора
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
😎 YeaHub — база знаний по всем IT-направлениям!

Здесь собрана огромная база реальных вопросов по бэкенду, DevOps, Data Science и другим направлениям. Всё структурировано по темам и приближено к формату собеседований в компаниях. Это именно тот ресурс, который нужно держать под рукой!

📌 Оставляю ссылочку: yeahub.ru

📣 JS Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥7❤4🤝1
Разбираем Optional chaining для методов с аргументами!

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.

📣 JS Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍9🔥6
Что же выведет консоль?
Anonymous Quiz
24%
A
9%
B
33%
C
34%
D
🔥14👍4🤝4❤2
📱 Замыкания — инструмент, который часто остаётся без должного внимания!

Они позволяют сохранять состояние между вызовами функций, делать приватные данные и собирать фабрики функций прямо на лету.

В посте разберём:
• Как замыкания «помнят» окружение;

• Как с их помощью создавать счётчики без глобальных переменных;

• Как строить фабрики функций и даже скрытые свойства объектов.


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

📣 JS Ready | #гайд
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

Создадим токен используя случайную соль, 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 нужен для проверки срока действия токена. При валидации сравниваем его с текущим временем и отклоняем устаревшие токены.

📣 JS Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍8🤝4
📱 Простейший игровой движок для текстовых игр!

Сделаем маленький каркас, где игрок выбирает действия, а игра реагирует на них - как в старых консольных квестах.

В этом посте:
• Реализуем хранение состояния игры;

• Добавим ввод действий игрока и обработку их логики;

• Настроим вывод текста и переход между состояниями;

• Получим базовый движок, который легко расширить до квеста или RPG.


Такой подход тренирует работу с циклами, объектами и обработкой событий в JS, а ещё даёт фундамент для будущих игровых проектов.

📣 JS Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9🤝6👍4❤2