存储:setItem() 方法

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

语法

js
setItem(keyName, keyValue)

参数

keyName

包含要创建/更新的键名称的字符串。

keyValue

包含要赋予要创建/更新的键的值的字符串。

返回值

无 (undefined).

异常

QuotaExceededError DOMException

如果存储用完磁盘配额或用户拒绝授予更多空间,则抛出此异常。

示例

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

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

注意:要查看其在实际示例中的用法,请参阅我们的 Web 存储演示

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

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅