10 JS-сниппетов, которые экономят время в каждом проекте

Эти лаконичные и мощные JavaScript-функции пригодятся тебе снова и снова. Форматирование даты, debounce, очистка объекта, копирование в буфер — всё, что нужно для продуктивной разработки.

РазработкаОсновы

Каждый разработчик имеет свой «рюкзак» с утилитами, которые помогают решать повседневные задачи быстрее. В этой статье — десять лаконичных, но крайне полезных JS-сниппетов, которые можно добавлять в каждый проект. Они не зависят от фреймворков и отлично работают в любом окружении: от Node.js до браузера.

1. 📅 Форматирование даты

const formatDate = (date) =>
  new Intl.DateTimeFormat('ru-RU', {
    dateStyle: 'medium',
    timeStyle: 'short',
  }).format(date);

Зачем: красиво и локализовано выводим дату и время.

Пример: formatDate(new Date()) // "29 июня 2025 г., 12:00"

2. 🧪 Проверка: промис это или нет

const isPromise = (val) =>
  Boolean(val && typeof val.then === 'function');

Зачем: определяем, что перед нами — промис.

3. 📜 Копирование в буфер обмена

const copyToClipboard = async (text) =>
  await navigator.clipboard.writeText(text);

Зачем: часто нужно реализовать "Скопировать" по клику.

4. 🔁 Глубокое копирование объекта

const deepClone = (obj) =>
  JSON.parse(JSON.stringify(obj));

Зачем: чтобы не мутировать оригинальный объект.

5. ⏳ Простой debounce

const debounce = (fn, delay = 300) => {
  let timeout;
  return (...args) => {
    clearTimeout(timeout);
    timeout = setTimeout(() => fn(...args), delay);
  };
};

Зачем: для оптимизации частых событий, например ввода.

6. 🚫 Удаление дубликатов из массива

const unique = (arr) => [...new Set(arr)];

Зачем: очищаем массив от повторов элегантно.

7. 🆔 Генерация простого ID

const randomId = () =>
  Math.random().toString(36).slice(2, 10);

Зачем: быстрое уникальное значение для UI или ключей.

8. ⏱ Задержка в async/await стиле

const sleep = (ms) =>
  new Promise((resolve) => setTimeout(resolve, ms));

Зачем: имитация задержки, паузы в анимации, тесты и т.д.

9. 💬 Получение параметров из URL

const getQueryParam = (key) =>
  new URLSearchParams(window.location.search).get(key);

Зачем: нужно часто — при фильтрации, пагинации и т.д.

10. 🧼 Очистка объекта от пустых значений

const cleanObject = (obj) =>
  Object.fromEntries(
    Object.entries(obj).filter(([_, v]) => v != null)
  );

Зачем: удаляем null и undefined перед отправкой данных.

🤔 Зачем запоминать эти сниппеты?

  • 📌 Они решают типовые задачи, встречающиеся в любом проекте.

  • 📌 Ускоряют разработку и делают код чище.

  • 📌 Понятны новичкам, полезны опытным.

Если ты учишься программировать и хочешь прокачиваться ежедневно — загляни в наше приложение Кодик. Это увлекательное обучение программированию через практику и челленджи!

Веб версия Кодик - https://itcodik.com/

📦 Совет

Создай файл utils.js и храни там свою коллекцию любимых утилит — как личный JS-швейцарский нож 🛠