☕ NEW! 完成新手任務即可參加抽獎!LINE 星巴克禮券等你拿,名額有限!        🎉 推廣活動:邀請好友註冊 DevLearn,累積推薦抽 LINE 星巴克禮券! 活動詳情 →        🔥 活動期間 2026/4/1 - 5/31 |已有 0 人參加       
javascript 初學

LocalStorage 與 JSON

LocalStorage — 瀏覽器端的儲存空間

比喻:LocalStorage 就像瀏覽器裡的小筆記本 📓

關掉瀏覽器再打開,資料還在。 但它只能存字串,要存物件需要先轉成 JSON。


基本操作

// 存入
localStorage.setItem("username", "小明");

// 讀取
let name = localStorage.getItem("username");  // ← "小明"

// 刪除
localStorage.removeItem("username");

// 清空全部
localStorage.clear();

// 檢查有幾筆
console.log(localStorage.length);

存物件(需要 JSON)

// ❌ 直接存物件會變成 "[object Object]"
localStorage.setItem("user", { name: "小明" });
localStorage.getItem("user");  // ← "[object Object]"(壞了)

// ✅ 用 JSON.stringify / JSON.parse
let user = { name: "小明", age: 20, hobbies: ["籃球"] };

// 存入:物件 → JSON 字串
localStorage.setItem("user", JSON.stringify(user));

// 讀取:JSON 字串 → 物件
let saved = JSON.parse(localStorage.getItem("user"));
console.log(saved.name);     // ← "小明"
console.log(saved.hobbies);  // ← ["籃球"]

安全讀取

// 封裝安全的讀寫函式
function saveToStorage(key, value) {
    localStorage.setItem(key, JSON.stringify(value));
}

function loadFromStorage(key, defaultValue = null) {
    try {
        let item = localStorage.getItem(key);
        return item ? JSON.parse(item) : defaultValue;
    } catch {
        return defaultValue;     // ← JSON 解析失敗時回傳預設值
    }
}

// 使用
saveToStorage("settings", { theme: "dark", lang: "zh" });
let settings = loadFromStorage("settings", { theme: "light" });

SessionStorage

// 用法和 localStorage 完全一樣,但關掉分頁就消失
sessionStorage.setItem("token", "abc123");
sessionStorage.getItem("token");
比較 localStorage sessionStorage
生命週期 永久(手動清除) 關閉分頁就消失
容量 約 5~10 MB 約 5~10 MB
共享範圍 同源的所有分頁 只限當前分頁

實用範例

// 記住使用者的佈景主題
function setTheme(theme) {
    document.body.className = theme;
    saveToStorage("theme", theme);
}

// 頁面載入時套用
let savedTheme = loadFromStorage("theme", "light");
setTheme(savedTheme);

// 記住購物車
function addToCart(product) {
    let cart = loadFromStorage("cart", []);
    cart.push(product);
    saveToStorage("cart", cart);
}

💡 大家的想法 · 0

載入中...
💬 即時聊天室 🟢 0 人在線
😀 😎 🤓 💻 🎮 🎸 🔥
➕ 新問題
📋 我的工單
💬 LINE 社群
🔒
需要註冊才能使用此功能
註冊帳號即可解鎖測驗、遊戲、簽到、筆記下載等所有功能,完全免費!
免費註冊