localstorage 本身不提供专门的“key索引接口”,但可通过 key() 方法配合 length 遍历实现有序访问;key(i) 返回第 i 个键名(插入顺序),越界返回 null,兼容 ie8+。

HTML5 的 localStorage 本身**不提供专门的“Key索引接口”**,但可通过标准 Web API 中的 key() 方法配合长度遍历,实现对所有键名的有序访问。这是最直接、兼容性最好(支持所有现代浏览器及 IE8+)的方式。
使用 key() 方法按索引获取键名
localStorage.key(index) 是原生方法:传入数字索引(从 0 开始),返回对应位置的键名;若索引越界,返回 null。配合 localStorage.length 即可完整遍历:
- 先读取
localStorage.length获取当前存储的键值对总数 - 用
for循环从0到length - 1,每次调用localStorage.key(i) - 该方式返回的键名顺序是**插入顺序**(规范未强制,但各浏览器实际均按此实现)
推荐写法:安全遍历所有键名
以下代码健壮处理空存储或动态变化场景:
function getAllKeys() {
const keys = [];
const len = localStorage.length;
for (let i = 0; i // 使用示例
console.log(getAllKeys()); // ['username', 'theme', 'token']
注意:没有“Key索引接口”,别混淆其他概念
所谓“Key索引接口”并非标准术语,容易与以下概念混淆:
- IndexedDB 的 keyPath / index:用于对象存储的高级索引机制,和 localStorage 无关
-
Object.keys(localStorage):不可行!
localStorage不是普通对象,不能直接用Object.keys()遍历 -
for...in 循环:会遍历原型链上的属性(如
setItem、getItem等方法),不是键名,不推荐
扩展:获取键名的同时读取值
如果需要键值对,可在遍历时调用 localStorage.getItem(key):
function getAllEntries() {
const entries = [];
const len = localStorage.length;
for (let i = 0; i <p>不复杂但容易忽略细节:始终依赖 <code>length</code> 和 <code>key(index)</code> 这一对组合,就能稳定、高效地遍历 localStorage 的所有键名。</p>前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











