关于这个问题,直接看代码比较合适 ^_^
let st = window.localStorage;
st.setItem(‘a‘, {});
st.setItem(‘b‘,[1,2,3]);
st.setItem(‘c‘, undefined);
st.setItem(‘d‘, null);
st.setItem(‘e‘, true);
st.setItem(‘f‘, 123);
st.setItem(‘g‘, ‘abc‘);
// ---------------------------------
st.getItem(‘a‘); // "[object Object]"
st.getItem(‘b‘); // "1,2,3"
st.getItem(‘c‘); // "undefined"
st.getItem(‘d‘); // "null"
st.getItem(‘e‘); // "true"
st.getItem(‘f‘); // "123"
st.getItem(‘g‘); // "abc"
// ----------------------------------
可以看得出来,我们取出来的值好像和存进去的值有一点差别。好像都被String()函数给转换了一次。
没错,这就是为什么我们在存值的时候会将其用JSON.stringify()函数将其转成字符串的原因。(存入缓存的值会被String()函数转换成字符串形式)