localStorage为什么在存值的时候要将其用JSON.stringify() 函数转成字符串?

关于这个问题,直接看代码比较合适   ^_^

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()函数转换成字符串形式)

原文地址:https://www.cnblogs.com/foreveronlymiss/p/14451013.html