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 反序列化。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |