- .存的数据都是字符串 String!!!
- 数值 Number
-
设置
localStorage.setItem('num', 2114)
获取
let num = localStorage.getItem('num')
//如果数据不存在,返回null;如果存在返回字符串[黑色]
console.log(num);
//类型转换为数值型[蓝色]
console.log(Number(num));
- 字符串 String
-
设置
localStorage.setItem('str', 'male')
获取
let str = localStorage.getItem('str')
//如果数据不存在,返回null
console.log(str);
- 数组 Array
-
.直接存储会被转化为字符串
let arr = [1, 2, 3, 4, 5];
let res;
console.log('before set: ', arr);
localStorage.setItem('arr', arr)
res = localStorage.getItem('arr')
console.log('after get ', res);
.存储时,使用 JSON.stringify 将数据序列化处理后再保存,否则无法还原
//使用JSON.stringify转换
localStorage.setItem('arr1', JSON.stringify(arr));
.获取时,使用 JSON.parse 转换为原始数据类型;如果不解析仍然是字符串
// 使用JSON.parse解析
res = JSON.parse(localStorage.getItem('arr1'));
console.log('解析获取:res:', res);
兼容写法:如果为 null,则赋值为空数组
res = JSON.parse(localStorage.getItem('arr1')) || [];
- 对象 Object
-
.同数组一样,对象的保存和获取也要处理
.直接存储,查看时,显示为[object Object]
let obj = { name: 'glc' }
//使用JSON.stringify转换
localStorage.setItem('obj', JSON.stringify(obj))
// 使用JSON.parse解析
let obj1 = JSON.parse(localStorage.getItem('obj'))
console.log(obj1);
兼容写法:如果为 null,则赋值为空对象
obj1 = JSON.parse(localStorage.getItem('obj')) || {};
- 布尔 Boolean
-
设置
localStorage.setItem('bool', true)
获取
let bool = localStorage.getItem('bool')
//如果数据不存在,返回null
console.log(bool, Boolean(bool));