localStorage.clear();
localStorage.setItem('key', 'value');
localStorage.setItem('key', 1);
localStorage.setItem('test', 1);
alert( localStorage.getItem('key'));
localStorage.removeItem('key');
alert( localStorage.key(0) );
alert( localStorage.key(1) );
alert( localStorage.length );
// set key localStorage.test = 2;
// get key alert( localStorage.test ); // 2
// remove key delete localStorage.test;
// get key alert( localStorage.test ); // undefined
// loop over them as over an array for(let i=0; i<localStorage.length; i++) { let key = localStorage.key(i); alert(`${key}: ${localStorage.getItem(key)}`); }
// for key in localStorage - bad try for(let key in localStorage) { alert(key); // shows getItem, setItem and other built-in stuff }
// for key in localStorage // filter fields from the prototype with hasOwnProperty check for(let key in localStorage) { if (!localStorage.hasOwnProperty(key)) { continue; // skip keys like "setItem", "getItem" etc } alert(`${key}: ${localStorage.getItem(key)}`); }
// get the “own” keys with Object.keys and then loop over them let keys = Object.keys(localStorage); for(let key of keys) { alert(`${key}: ${localStorage.getItem(key)}`); }
// everything gets converted to string automatically localStorage.user = {name: "John"}; alert(localStorage.user); // [object Object]
// JSON to store objects localStorage.user = JSON.stringify({name: "John"}); let user = JSON.parse( localStorage.user ); alert( user.name ); // John
// stringify the whole storage object alert( JSON.stringify(localStorage, null, 2) );
// triggers on updates made to the same storage from other documents // can also use window.addEventListener('storage', event => { window.onstorage = event => { if (event.key != 'now') return; alert(event.key + ':' + event.newValue + " at " + event.url); }; localStorage.setItem('now', Date.now());