JavaScript 中 getItem 方法詳解
你想了解的 JavaScript 中的 getItem 方法,核心是用於從瀏覽器的存儲對象中讀取指定鍵(key)對應的存儲值(value),最常用在 Web 存儲相關的 API 中,下面分核心知識點詳細説明:
一、核心使用場景:兩大存儲對象
getItem 並非全局通用方法,主要綁定在瀏覽器提供的兩個存儲對象上,也是日常開發的核心場景:
localStorage:永久存儲(除非手動刪除或清理瀏覽器數據,否則數據會一直保留在本地)sessionStorage:會話存儲(僅在當前瀏覽器標籤頁有效,標籤頁關閉後數據自動銷燬)
這兩個對象的 getItem 用法完全一致,僅存儲有效期不同。
二、基本語法
語法格式非常簡潔,參數和返回值有明確規範:
// 通用語法
存儲對象.getItem(keyName);
- 參數
keyName:必需,字符串類型(String),表示你要讀取的存儲數據對應的「鍵名」(存儲時已定義的唯一標識)。 - 返回值:
- 如果存在對應
keyName的數據,返回該數據對應的「字符串值」(所有 Web 存儲的數據都會被自動序列化為字符串格式存儲); - 如果不存在對應
keyName(鍵名不存在或未存儲該數據),返回null(這是判斷某個鍵是否存在的重要依據)。
- 如果存在對應
三、完整代碼示例
下面通過 localStorage 演示 getItem 的完整使用(sessionStorage 用法完全替換即可):
// 第一步:先通過 setItem 存儲數據(搭配 getItem 使用,模擬實際開發場景)
localStorage.setItem("userName", "張三"); // 存儲鍵名:userName,鍵值:張三
localStorage.setItem("userAge", "25"); // 存儲數字時,也會自動轉為字符串
localStorage.setItem("userInfo", JSON.stringify({ id: 1, gender: "男" })); // 存儲對象需先序列化
// 第二步:通過 getItem 讀取數據
const userName = localStorage.getItem("userName");
const userAge = localStorage.getItem("userAge");
const userInfo = JSON.parse(localStorage.getItem("userInfo")); // 讀取對象需反序列化
const nonExistKey = localStorage.getItem("unKnownKey"); // 讀取不存在的鍵
// 第三步:打印結果
console.log(userName); // 輸出:"張三"(字符串類型)
console.log(userAge); // 輸出:"25"(字符串類型,注意不是數字 25)
console.log(userInfo); // 輸出:{ id: 1, gender: "男" }(還原為對象)
console.log(nonExistKey); // 輸出:null(鍵不存在時返回 null)
// 可選:刪除存儲(輔助理解)
localStorage.removeItem("userName");
console.log(localStorage.getItem("userName")); // 輸出:null(刪除後讀取也返回 null)
四、補充説明
- 數據類型限制:Web 存儲僅支持字符串格式存儲,因此讀取非字符串類型(對象、數組、數字等)時,需要配合
JSON.stringify(存儲時)和JSON.parse(讀取後)進行轉換,否則會讀取到無效格式。 - 兼容性:支持所有現代瀏覽器,以及 IE8 及以上版本,無需額外兼容處理。
- 區別於其他
getItem:部分其他 API 也有getItem方法(如 Cookie 相關、IndexedDB 等),但 Web 開發中最常用的仍是localStorage和sessionStorage上的getItem,其核心邏輯都是「按鍵取值」,僅API細節略有差異。
總結
getItem核心功能:從瀏覽器localStorage/sessionStorage中按鍵名讀取存儲值;- 關鍵特性:參數為字符串鍵名,存在對應數據返回字符串值,不存在返回
null; - 核心用法:配合
setItem存儲數據,讀取對象/數組時需用JSON.parse反序列化。