Storage:setItem() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

当传递一个键名和值时,Storage 接口的 setItem() 方法会将该键添加到给定的 Storage 对象中,如果该键已存在,则会更新其值。

语法

js
setItem(keyName, keyValue)

参数

keyName

一个包含您要创建/更新的键名的字符串。

keyValue

一个包含您要为正在创建/更新的键指定的值的字符串。

返回值

无(undefined)。

异常

QuotaExceededError

如果存储空间已满或用户拒绝授予您更多空间,则会抛出此异常。

示例

以下函数在本地存储中创建了三个数据项。

js
function populateStorage() {
  localStorage.setItem("bgcolor", "red");
  localStorage.setItem("font", "Helvetica");
  localStorage.setItem("image", "myCat.png");
}

注意: 要查看在实际示例中的应用,请参阅我们的 Web Storage 演示

Storage 只支持存储和检索字符串。如果您想保存其他数据类型,您必须将其转换为字符串。对于普通对象和数组,您可以使用 JSON.stringify()

js
const person = { name: "Alex" };
localStorage.setItem("user", person);
console.log(localStorage.getItem("user")); // "[object Object]"; not useful!
localStorage.setItem("user", JSON.stringify(person));
console.log(JSON.parse(localStorage.getItem("user"))); // { name: "Alex" }

但是,没有通用的方法来存储任意数据类型。此外,检索到的对象是原始对象的 深拷贝,对其进行的修改不会影响原始对象。

规范

规范
HTML
# dom-storage-setitem-dev

浏览器兼容性

另见