JavaScript автоматически очищает память, но только за тем, что действительно “потеряно”. Если ссылка на объект где-то осталась — сборщик мусора бессилен.
В этом посте:
• Как движок решает, что можно удалить;
• Как простое замыкание удерживает мегабайты памяти;
• Чем WeakMap спасает от утечек;
• FinalizationRegistry, чтобы увидеть момент очистки.
Понимание модели памяти важно не меньше, чем знание синтаксиса.
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
Project Manager — позволяет переключаться между разными проектами внутри одного экземпляра VS Code. Просто откройте боковую панель и выберите нужный. Можно группировать, давать имена, закреплять самые частые, всё максимально просто и быстро.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥6🤝6
В этой шпаргалке собраны основные приёмы и возможности для работы с Symbol — примитивом, который позволяет создавать уникальные ключи, управлять поведением объектов и скрывать внутренние данные. Эти техники применяются во фреймворках, итераторах, метаданных и при проектировании архитектур с инкапсуляцией. Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤7👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Хочешь прокачать навыки HTML, CSS или JavaScript без скучных учебников? На Codepip учёба превращается в лёгкий и увлекательный процесс. Каждый уровень - это маленький челлендж, который заставит думать как программист и писать правильный код.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤7🤝6🔥1
Есть нативный, удобный и мульти-языковой API —
Intl.NumberFormat. Он форматирует числа, валюты, проценты и даже компактные обозначения (“1.2K”, “3M”) по правилам конкретного региона.Пример для валюты:
new Intl.NumberFormat('de-DE', {
style: 'currency',
currency: 'EUR'
}).format(1299.99);
// → 1.299,99 €Или для процентов:
new Intl.NumberFormat('en-US', {
style: 'percent',
maximumFractionDigits: 1
}).format(0.875);
// → 87.5%Или короткие числа:
new Intl.NumberFormat('en', {
notation: 'compact'
}).format(12500);
// → 12.5KЭто встроенный инструмент, который заменяет
moment.js, numeral.js и ручное форматирование. Любая валюта, любой язык, любая локаль.Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤12🤝6
This media is not supported in your browser
VIEW IN TELEGRAM
Partial Diff — расширение, которое позволяет мгновенно увидеть разницу между блоками кода. Работает с любыми файлами, от JS-функций до HTML-разметки. Идеально при рефакторинге, тестировании или ревью чужого кода. Минимум действий. Максимум наглядности.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥7🤝5
Иногда нужно выполнить код сразу, но не засорять глобальную область:
function init() {
console.log('Init logic...');
}
init();Здесь всё работает, но
init остаётся в памяти и доступна извне.Решение —
IIFE. Функция создаётся и вызывается сразу:(function () {
console.log('This runs immediately!');
})();Можно использовать стрелочную форму:
(() => {
console.log('Executed instantly!');
})();Всё, что внутри, живёт только в этой области, никаких глобальных переменных и конфликтов имён:
(() => {
const token = 'abc123';
})();
console.log(typeof token); // undefined🔥 Выполняешь код сразу и не оставляешь мусора в глобальной зоне.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍10🔥6
Симулятор броска монеты на JavaScript!
Простая реализация подбрасывания монеты с небольшой задержкой — имитация реального ожидания результата.
Создаём массив сторон монеты:
Функция выводит сообщение, ждёт 2 секунды и затем выбирает случайную сторону:
Вызываем функцию, чтобы выполнить симуляцию:
🔥 Отличный пример работы с асинхронностью, случайностью и имитацией задержки — базовые приёмы для CLI-анимаций и простых игр.
📣 JS Ready | #практика
Простая реализация подбрасывания монеты с небольшой задержкой — имитация реального ожидания результата.
Создаём массив сторон монеты:
const sides = ["Орёл 🦅", "Решка 💰"];
Функция выводит сообщение, ждёт 2 секунды и затем выбирает случайную сторону:
function flipCoin() {
console.log("Бросаем монету...");
setTimeout(() => {
const result = sides[Math.floor(Math.random() * sides.length)];
console.log(`Выпало: ${result}`);
}, 2000);
}Вызываем функцию, чтобы выполнить симуляцию:
flipCoin();
🔥 Отличный пример работы с асинхронностью, случайностью и имитацией задержки — базовые приёмы для CLI-анимаций и простых игр.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍9❤8🤝2
В этой шпаргалке собраны методы для создания, измерения и форматирования дат. Они применяются при разработке отчётов, планировщиков, логов и API-интеграций. Уверенное владение Date позволяет работать с временем предсказуемо, корректно и без ошибок локализации.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥13❤11🤝1
Определяем язык браузера!
Определяем язык предпочтений пользователя, чтобы автоматически загрузить нужную локализацию или отобразить корректный контент.
Браузер хранит языковые настройки в объекте
Если нужно использовать только код языка (без региона), можно аккуратно выделить его:
Для более точной адаптации лучше учитывать весь список предпочтений пользователя:
Чтобы гарантировать корректные коды локалей, можно нормализовать их по стандарту
🔥 Такой подход лежит в основе автоматического выбора локали, подбора перевода интерфейса и настройки форматов дат и чисел.
📣 JS Ready | #практика
Определяем язык предпочтений пользователя, чтобы автоматически загрузить нужную локализацию или отобразить корректный контент.
Браузер хранит языковые настройки в объекте
navigator:const userLang = navigator.language;
console.log(`Язык браузера: ${userLang}`); // например: "en-US"
Если нужно использовать только код языка (без региона), можно аккуратно выделить его:
const langCode = userLang.split('-')[0].toLowerCase();
console.log(`Код языка: ${langCode}`); // "en"Для более точной адаптации лучше учитывать весь список предпочтений пользователя:
const preferred = navigator.languages?.length
? navigator.languages
: [navigator.language || 'en'];
console.log('Приоритет языков:', preferred); // ["en-US", "ru", "de"]
Чтобы гарантировать корректные коды локалей, можно нормализовать их по стандарту
BCP-47:const locales = Intl.getCanonicalLocales(preferred);
console.log('Нормализованные локали:', locales)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤7👍7🤝2😁1
Сегодня покажу, как сделать настоящую мини-игру змейку прямо в терминале — с управлением, движением и логикой столкновений.
В этом посте:
• Работа с real-time input через readline;
• Отрисовка ASCII-анимации в консоли;
• Движение, рост и завершение игры при коллизии.
Прекрасная практика массивов, циклов, координат и работы с событиями.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍11❤6