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