Null对象在localStorage中是String类型

Null object is String type in localStorage

我来自 Java 开发人员并且是 javascript 的新手,有人可以解释一下发生了什么吗。

我正在使用 localStorage 将我的令牌存储在我的浏览器中。

localStorage.token = 'xxx'

当用户注销时,我们删除令牌,这是代码

localStorage.token = null

如果我们想检查用户是否通过身份验证,我们检查令牌

const isAuth = localStorage.token !== null

这件事对我来说变得很奇怪。我把localStorage.token标记为null后,

localStorage.token !== null的结果仍然正确!


我做了一些调查,

我记录了 localStorage 对象并发现 token 变量是 "null" 而不是 null.

这是我的假设。

当浏览器需要存储localStorage时,会在object字段里面迭代,找到null对象后,用toString来存储最终的形式?

使用 localStorage 方法设置、获取和删除令牌。

查看此 link 了解更多详情:https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

要检查令牌是否存在,您可以这样做:

const isAuth = !!localStorage.token

您可以使用 removeItem() 从本地存储中删除项目。

localStorage.removeItem('token')

您还可以使用函数 getItem() 来检索项目。

localStorage.getItem('token')

这将 return 当它不存在时为 null。

Documentation

https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem

https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem

https://blog.logrocket.com/localstorage-javascript-complete-guide/

本地存储只能保存字符串。这是生活中一个简单的事实。 这就是为什么 JSON.parseJSON.stringify 是读写本地存储的同义词。 null也不例外。

给一个值或用函数集项覆盖本地存储中存在的值,如下代码:

localStorage.setItem('token' , 'your token here ');

访问值:

localStorage.getItem('token')
window.console.log("token :",localStorage.getItem('token'))

浏览器中的本地存储仅适用于字符串类型

localStorage.getItem('someItem');
localStorage.setItem('someItem', 'string value');
localStorage.removeItem('someItem');