当你定义一个对象,比如 user: { name: ' John ' }
,使用sessionStorage
等浏览器存储域的时候,sessionStorage.setItem('user',user)
,你获取此值并且打印输出的时候console.log(sessionStorage.getItem('user'))
会发现打印的结果为[object object]
原因
使用sessionStorage
存储域的时候,因为user
类型是一个对象,如果你不将对象转换成字符串的时候,浏览器则自动将对象强转为字符串。但是浏览器强转字符串的时候,并不具备将对象的键和值转换成字符串,所以只是单纯地将对象转换成【object object】
解决办法
在存储对象的之前,先将对象转换成json字符串,然后再存储
sessionStorage.setItem('user',JSON.stringify(user))
使用时则需要取出来,然后将json字符串转换成json对象
JSON.parse(sessionStorage.getItem('user'))