JavaScript LocalStorage vs SessionStorage
LocalStorage and SessionStorage are part of the Web Storage API, allowing developers to store key/value pairs in the browser. Unlike cookies, they don't expire with each request and are much easier to use.
1. What is LocalStorage?
Data is stored in the browser with no expiration time.
Stays even after page reload or browser restart.
Useful for storing user preferences, themes, tokens, etc.
Syntax:
localStorage.setItem('key', 'value'); // Save data
const data = localStorage.getItem('key'); // Read data
localStorage.removeItem('key'); // Delete specific key
localStorage.clear(); // Clear all keys
Example:
localStorage.setItem('username', 'JohnDoe');
console.log(localStorage.getItem('username')); // Output: JohnDoe
localStorage.removeItem('username');
2. What is SessionStorage?
Data is stored per session (until the browser/tab is closed).
Useful for temporary data like form input, tab-specific info, or temp tokens.
Syntax:
sessionStorage.setItem('key', 'value'); // Save data
const data = sessionStorage.getItem('key'); // Read data
sessionStorage.removeItem('key'); // Delete key
sessionStorage.clear(); // Clear all
Example:
sessionStorage.setItem('cartItems', '3');
console.log(sessionStorage.getItem('cartItems')); // Output: 3
3. Key Differences: LocalStorage vs SessionStorage
Feature | localStorage | sessionStorage |
---|---|---|
Persistence | Until manually cleared | Until browser/tab is closed |
Scope | Across tabs and windows | Per tab/session only |
Storage limit | ~5MB | ~5MB |
Use case | User settings, tokens | Temp form data, one-time flags |
4. Real-World Use Cases
LocalStorage:
- Save theme (dark/light)
- Store auth tokens
- User settings/preferences
SessionStorage:
- Keep form progress until submission
- Store current page state
- Temporary filters/selections
5. Note on Data Types
All data is stored as strings. You can use JSON.stringify() and JSON.parse() for storing/retrieving objects or arrays.
Example with objects:
const user = { name: "Alice", age: 25 };
// Save object
localStorage.setItem("user", JSON.stringify(user));
// Retrieve object
const data = JSON.parse(localStorage.getItem("user"));
console.log(data.name); // Output: Alice