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