跳到主要内容

storage 使用

SessionStorage&LocalStorage 由于这两个对象的属性都是一样的,以下用 localstorage 为代表

setItem

storage 可以通过 JavaScript 的 storage.setItem(key, value)来写入 storage.setItem("name", "John Doe");

getItem

storage 可以通过 JavaScript 的 storage.getItem(key)来读取 var name = storage.getItem("name");

removeItem clear

storage 可以通过JavaScript 的 storage.removeItem(key) 来删除特定 key,也可以通过 storage.clear()删除所有数据

storage.removeItem('key');

写入非字符串数据

由于 storage 只能保存字符串类型的数据,所以,在写入数据前,如果是非字符串类型的数据,就可能会导致原始数据丢失或原始类型丢失

传入 symbol 会直接报错

从上面的结果可以得出以下结论:所有写入 storage 的非字符串类型数据,都会先将其转换成字符串类型,引用类型会调用 toString 方法,获取原始数据是非字符串类型,需要进行转换。

写入过多数据

如上所述,storage 的容量也是有限的,一般是 5MB,一旦写入过多的数据,就会导致浏览器异常报错。可以对 storage 包装一层,进行异常处理。

const setItem = localStorage.setItem;
localStorage.setItem = function setItem(data): boolean {
try {
setItem(data);
return true;
} catch (error) {
return false;
}
};