JavaScript Utility funkce

JavaScript 📄 utils.js

Kolekce užitečných JavaScript utility funkcí pro každodenní vývoj - debounce, deep clone, formátování a storage

JavaScript Utility funkce
// Debounce funkce pro optimalizaci výkonu
export const debounce = (func, wait, immediate = false) => {
  let timeout
  return function executedFunction(...args) {
    const later = () => {
      timeout = null
      if (!immediate) func(...args)
    }
    const callNow = immediate && !timeout
    clearTimeout(timeout)
    timeout = setTimeout(later, wait)
    if (callNow) func(...args)
  }
}

// Deep clone objektu
export const deepClone = (obj) => {
  if (obj === null || typeof obj !== "object") return obj
  if (obj instanceof Date) return new Date(obj.getTime())
  if (obj instanceof Array) return obj.map(item => deepClone(item))
  if (typeof obj === "object") {
    const clonedObj = {}
    for (const key in obj) {
      if (obj.hasOwnProperty(key)) {
        clonedObj[key] = deepClone(obj[key])
      }
    }
    return clonedObj
  }
}

// Formátování čísel
export const formatNumber = (num, options = {}) => {
  const defaults = {
    locale: "cs-CZ",
    minimumFractionDigits: 0,
    maximumFractionDigits: 2
  }
  return new Intl.NumberFormat(options.locale || defaults.locale, {
    ...defaults,
    ...options
  }).format(num)
}

// Truncate text s třemi tečkami
export const truncateText = (text, length = 100, suffix = "...") => {
  if (text.length <= length) return text
  return text.substring(0, length).trim() + suffix
}

// Local storage s error handlingem
export const storage = {
  get(key, defaultValue = null) {
    try {
      const item = localStorage.getItem(key)
      return item ? JSON.parse(item) : defaultValue
    } catch (error) {
      console.warn(`Chyba při čtení z localStorage: ${error}`)
      return defaultValue
    }
  },
  
  set(key, value) {
    try {
      localStorage.setItem(key, JSON.stringify(value))
      return true
    } catch (error) {
      console.warn(`Chyba při zápisu do localStorage: ${error}`)
      return false
    }
  },
  
  remove(key) {
    try {
      localStorage.removeItem(key)
      return true
    } catch (error) {
      console.warn(`Chyba při mazání z localStorage: ${error}`)
      return false
    }
  }
}

Informace o gistu

ID:#15
Jazyk:JavaScript
Soubor:utils.js
Vytvořeno:1. srpna 2025
Likes:1

Soubory cookies

Používáme cookies pro zlepšení vašeho zážitku, pamatování preferencí a analýzu návštěvnosti. Některé cookies jsou nezbytné pro správnou funkci webu.

Nezbytné: Fungování webu, preferences (tmavý režim, zobrazení barvy)
Funkční: Sledování likes, zabránění duplicitním hodnocením