JavaScript Performance Quick Tips

Quick performance tips I always keep in mind:

Debouncing User Input

const debounce = (func, delay) => {
  let timeoutId;
  return (...args) => {
    clearTimeout(timeoutId);
    timeoutId = setTimeout(() => func.apply(this, args), delay);
  };
};

const debouncedSearch = debounce(searchAPI, 300);

Efficient Array Operations

// Use for...of for better performance
for (const item of items) {
  processItem(item);
}

// Avoid creating new arrays unnecessarily
const filtered = items.filter(item => item.active);
// vs
const filtered = [];
for (const item of items) {
  if (item.active) filtered.push(item);
}

Memory Leak Prevention

  • Remove event listeners when components unmount
  • Clear intervals and timeouts
  • Use WeakMap for caching when possible
  • Avoid global variables