本地存储

121 阅读1分钟

localStorage

作用: 可以将数据永久存储在本地(用户的电脑), 除非手动删除,否则关闭页面也会存在

  • 特性:
  • 可以多窗口(页面)共享(同一浏览器可以共享)
  • 以键值对的形式存储使用
  1. 存储数据
localStorage.setItem(key, value)
  1. 获取数据
localStorage.getItem('key')
  1. 删除数据
localStorage.removeItem('key')

举例说明:

// 1. 要存储一个名字
// localStorage.setItem('键','值')
localStorage.setItem('uname', 'andy')

// 2. 获取方式  都加引号
console.log(localStorage.getItem('uname'))

// 3. 删除本地存储  只删除名字
localStorage.removeItem('uname')

// 4. 改  如果原来有这个键,则是改,如果么有这个键是增
localStorage.setItem('uname', 'Ailin')

效果:

image.png

注意:本地存储只能存储字符串数据类型

举例说明:

// 存入Number类型数据
localStorage.setItem('age', 18)
console.log(localStorage.getItem('age'))

返回结果为String类型

image.png

sessionStorage

  • 特性:
  • 生命周期为关闭浏览器窗口
  • 在同一个窗口(页面)下数据可以共享
  • 以键值对的形式存储使用
  • 用法跟localStorage 基本相同

存储复杂数据类型

本地只能存储字符串,无法存储复杂数据类型

const obj = {
  uname: 'Ailin',
  age: 18,
  gender: '女'
}
// 存储 复杂数据类型  无法直接使用
localStorage.setItem('obj', obj)

image.png

解决:需要将复杂数据类型转换成JSON字符串,再存储到本地

语法:JSON.stringify(复杂数据类型)

 const obj = {
    uname: 'Ailin',
    age: 18,
    gender: '女'
}
// 1.复杂数据类型存储必须转换为 JSON字符串存储
localStorage.setItem('obj', JSON.stringify(obj))

image.png

因为本地存储里面取出来的是字符串,不是对象,无法直接使用

解决:将取出来的字符串转换为对象

语法:JSON.parse(JSON字符串)

const str = localStorage.getItem('obj') 
console.log(JSON.parse(str))

image.png