Materi
localStorage menyimpan pasangan kunci dan nilai di browser, terpisah untuk setiap asal situs (origin). Isinya tidak punya masa kedaluwarsa: tetap ada setelah tab ditutup dan browser dibuka lagi. sessionStorage memakai method yang sama, tetapi isinya hilang begitu halamannya ditutup. Method yang dipakai sehari-hari: setItem(kunci, nilai), getItem(kunci), dan removeItem(kunci).
Kunci dan nilainya selalu teks. Nilai yang bukan teks diubah menjadi teks lebih dulu, jadi array berisi objek tersimpan sebagai "[object Object]". Data berbentuk objek atau array diubah dengan JSON.stringify sebelum disimpan, lalu dibaca kembali dengan JSON.parse. getItem untuk kunci yang belum pernah diisi memberi null.
const pengaturan = { tema: "gelap", ukuran: 16 };
localStorage.setItem("pengaturan", JSON.stringify(pengaturan));
const teks = localStorage.getItem("pengaturan"); // '{"tema":"gelap","ukuran":16}'
const balik = teks === null ? { tema: "terang", ukuran: 14 } : JSON.parse(teks);Mengubah data tersimpan selalu mengikuti tiga langkah: muat seluruh isi, ubah di memori, lalu simpan seluruh isi lagi. Tidak ada cara mengubah satu item di dalam teks tersimpan secara langsung. Isi juga bisa rusak, misalnya disunting lewat alat pengembang, dan JSON.parse pada teks rusak melempar SyntaxError, jadi pembacaannya dibungkus try dan catch dengan nilai awal sebagai cadangan.
localStorage adalah milik objek window. Web Worker latihan tidak punya window, jadi latihan memakai penyimpanan tiruan dengan method yang sama, dan fungsimu menerimanya sebagai argumen. Di halaman sungguhan, panggilannya cukup muatKeranjang(localStorage).