企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 第二节:属性和方法 ### 一、属性 `Storage`接口只有一个属性。 * `Storage.length`:返回保存的数据项个数。 ~~~ window.localStorage.setItem('foo', 'a'); window.localStorage.setItem('bar', 'b'); window.localStorage.setItem('baz', 'c'); window.localStorage.length // 3 ~~~ ### 二、方法 * `Storage.setItem()`方法用于存入数据。 它接受两个参数,第一个是键名,第二个是保存的数据。如果键名已经存在,该方法会更新已有的键值。该方法没有返回值。 ~~~ window.sessionStorage.setItem('key', 'value'); window.localStorage.setItem('key', 'value'); ~~~ 注意,`Storage.setItem()`两个参数都是字符串。如果不是字符串,会自动转成字符串,再存入浏览器。 ~~~ window.sessionStorage.setItem(3, { foo: 1 }); window.sessionStorage.getItem('3') // "[object Object]" ~~~ 上面代码中,`setItem`方法的两个参数都不是字符串,但是存入的值都是字符串。 > 如果储存空间已满,该方法会抛错。 写入不一定要用这个方法,直接赋值也是可以的。 ~~~ // 下面三种写法等价 window.localStorage.foo = '123'; window.localStorage['foo'] = '123'; window.localStorage.setItem('foo', '123'); ~~~ * `Storage.getItem()`方法用于读取数据。 它只有一个参数,就是键名。如果键名不存在,该方法返回`null`。 ~~~ window.sessionStorage.getItem('key') window.localStorage.getItem('key') ~~~ 键名应该是一个字符串,否则会被自动转为字符串。 * `Storage.removeItem()`方法用于清除某个键名对应的键值。 它接受键名作为参数,如果键名不存在,该方法不会做任何事情。 ~~~ sessionStorage.removeItem('key'); localStorage.removeItem('key'); ~~~ * `Storage.clear()`方法用于清除所有保存的数据。该方法的返回值是`undefined`。 ~~~ window.sessionStorage.clear() window.localStorage.clear() ~~~ * `Storage.key()`接受一个整数作为参数(从零开始),返回该位置对应的键值。 ~~~ window.sessionStorage.setItem('key', 'value'); window.sessionStorage.key(0) // "key" ~~~ 结合使用`Storage.length`属性和`Storage.key()`方法,可以遍历所有的键。 ~~~ for (var i = 0; i < window.localStorage.length; i++) { var key = localStorage.key(i); var value = localStorage.getItem(key); console.log(key); console.log(value); } ~~~