javascript - 为什么null在localStorage中存储为字符串?

标签 javascript null local-storage

在 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/

相关文章:

javascript - 在 Javascript 中以负移位计数左移

javascript - 当依赖 Node 模块被 require() 时,什么时候(编译/运行时)链接到项目?

javascript - 是否有任何 Mongoose 验证库?

java - 只会读取和写入一行

javascript - localStorage 没有正确存储

javascript - AngularJS location.hash 动画

c# - 什么是NullReferenceException,如何解决?

objective-c - 带有 NULL 指针的 CGRectDivide

java - 使用 gson 序列化嵌套类 null 对象?

javascript - 如何获取过滤后的集合