原因
之前想把数据直接存储到localStorage中,直接setItem后getItem就好了,但是在存储对象数组的时候发现数据会变成object [Object]。
直接放结论
let data = {
name: "张三",
age: 18,
hobby: ["吃饭", "睡觉"]
}
console.log("原始值", data);
localStorage.setItem("data", JSON.stringify(data));
let localData = JSON.parse(localStorage.getItem("data"));
console.log("处理后的值", localData);
输出的结果前后一致
分析
如果直接输出:
let data = {
name: "张三",
age: 18,
hobby: ["吃饭", "睡觉"]
}
console.log("原始值", data)
localStorage.setItem("data", data);
let localData = localStorage.getItem("data");
console.log("处理后的值", localData);
data会自动执行toString()方法,导致最后结果不同。
JSON.stringify():将js转换成json字符串
JSON.parse():将json字符串抓换成js对象