在 Chrome 控制台中,我将 foo
设置为 null:
localStorage.setItem("foo",null)
然后我测试一下,是否为null:
console.log(localStorage.getItem("foo")==null)
打印false
。
然后我测试一下,是否是字符串"null"
:
console.log(localStorage.getItem("foo")=="null")
打印true
。
我认为 null
是合法的 Javascript 值。当我手动清除浏览器中的 localStorage 时,将其存储为字符串 "null"
非常违反直觉,并且在其他工作程序中导致了一个奇怪的错误。
最佳答案
请参阅https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
所有值都作为字符串存储在本地存储中。您应该在存储数据之前将数据字符串化,并在检索数据之后解析数据:
localStorage.setItem("foo", JSON.stringify(null));
var value = JSON.parse(localStorage.getItem("foo"));
console.log(value === null);
关于javascript - 为什么null在localStorage中存储为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47150795/