localStorage Helper Functions
last updated: 2026-03-09
localStorage Helper Functions
Utilities for working with localStorage that handle JSON serialization and errors.
// Save data to localStorage
function saveToStorage(key, value) {
try {
const serialized = JSON.stringify(value);
localStorage.setItem(key, serialized);
return true;
} catch (err) {
console.error('Failed to save to localStorage:', err);
return false;
}
}
// Load data from localStorage
function loadFromStorage(key, defaultValue = null) {
try {
const item = localStorage.getItem(key);
return item ? JSON.parse(item) : defaultValue;
} catch (err) {
console.error('Failed to load from localStorage:', err);
return defaultValue;
}
}
// Remove item from localStorage
function removeFromStorage(key) {
try {
localStorage.removeItem(key);
return true;
} catch (err) {
console.error('Failed to remove from localStorage:', err);
return false;
}
}
// Clear all localStorage
function clearStorage() {
try {
localStorage.clear();
return true;
} catch (err) {
console.error('Failed to clear localStorage:', err);
return false;
}
}
// Check if localStorage is available
function isStorageAvailable() {
try {
const test = '__storage_test__';
localStorage.setItem(test, test);
localStorage.removeItem(test);
return true;
} catch (err) {
return false;
}
}
Usage Example
// Save user preferences
saveToStorage('theme', { mode: 'dark', fontSize: 16 });
// Load user preferences
const theme = loadFromStorage('theme', { mode: 'light', fontSize: 14 });
// Update history
const history = loadFromStorage('history', []);
history.push({ action: 'login', timestamp: Date.now() });
saveToStorage('history', history.slice(-10)); // Keep only last 10
Storage Limits
- localStorage typically has a 5-10MB limit per origin
- Storing large amounts of data can throw a QuotaExceededError
- Always wrap operations in try-catch blocks