还记得第一次使用 localStorage 存储了个数组,却一直显示为 [object,object]
解决办法:
- 存储对象
window.localStorage.setItem('名称', JSON.stringify(对象数据))
- 获取对象
let content = JSON.parse(localStorage.getItem('名称'))
- 楼主本人实例-存值、取值
var b = window.localStorage.hasOwnProperty("userInfo");
if (b) {
var userInfo_json = window.localStorage.getItem("userInfo");
if (userInfo_json != null) {
var userInfo_obj = JSON.parse(userInfo_json);
$("#userInfo").val(userInfo_obj.name);
}
} else {
var access_code = window.localStorage.getItem("access_code");
$.post({
url: path + "/dingTalkLogin/getUserInfo", //通过免登码获取用户信息
data: {"access_code": access_code, "access_token": access_token},
dataType: "json",//服务器返回的数据类型 "json": 返回 JSON 数据 。
cache: false,//默认值: true,dataType 为 script 和 jsonp 时默认为 false。设置为 false 将不缓存此页面。
async: false,//默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
success: function (response) {
console.log(response);
if (response.code == 200) {
$("#userInfo").val(response.data.name);
window.localStorage.setItem("userInfo", JSON.stringify(response.data));
} else {
console.log("token获取失败");
}
},
error: function (e) {
console.log(e);
}
})
}
- 判断是否具有某个key,hasOwnProperty方法
localStorage.hasOwnProperty("name")
// 如果存在的话返回true,不存在返回false
- localStorage删除
我们通过以下方法来删除对应key以及key中的内容
window.localStorage.removeItem('key')
- localStorage清空所有的key
清空localStorage中所有的key;
注意:请谨慎使用,它会清空所有的本地存储数据
window.localStorage.clear()