還記得第二篇的待辦清單嗎?只要重新整理網頁,所有項目就消失了。這一篇要用一個很簡單的功能解決這個問題:localStorage。它可以把資料存在使用者的瀏覽器裡,關掉網頁再打開,資料還在。
一、什麼是 localStorage?
localStorage 是瀏覽器內建的小型儲存空間,以「名稱(key)」與「值(value)」成對存放資料,不需要伺服器或資料庫。
- 關閉瀏覽器後資料依然存在。
- 每個網站各自獨立,彼此看不到對方的資料。
- 容量大約 5MB,適合存放設定、簡單清單等小資料。
- 只能存「字串」。
二、四個基本指令
在瀏覽器按 F12 打開 Console,直接輸入看看:
// 1. 存入資料
localStorage.setItem("username", "小明");
// 2. 讀取資料
console.log(localStorage.getItem("username")); // 小明
// 3. 刪除單筆資料
localStorage.removeItem("username");
// 4. 清空全部資料
localStorage.clear();
如果讀取一個不存在的名稱,會得到 null。
想親眼看到資料存在哪裡:按 F12,切換到「Application(應用程式)」分頁,左側找到 Local Storage,就能看到存起來的內容。
三、存放陣列與物件
localStorage 只能存字串,所以陣列和物件要先用 JSON.stringify() 轉成字串,讀取時再用 JSON.parse() 轉回來:
const fruits = ["蘋果", "香蕉", "橘子"];
// 存入:陣列 → 字串
localStorage.setItem("fruits", JSON.stringify(fruits));
// 讀取:字串 → 陣列
const saved = JSON.parse(localStorage.getItem("fruits"));
console.log(saved[0]); // 蘋果
如果忘記轉換,存進去的會變成 [object Object] 這種沒有用的字串,這是初學者最常犯的錯。