我是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时,它在对象字段内迭代,在找到null
对象后,它使用toString
来存储最终形式?
浏览器中的Localstorage仅适用于字符串类型
localStorage.getItem('someItem');
localStorage.setItem('someItem', 'string value');
localStorage.removeItem('someItem');
给出一个值或用函数集项覆盖本地存储中存在的值,如下面的代码:
localStorage.setItem('token' , 'your token here ');
和访问值:
localStorage.getItem('token')
window.console.log("token :",localStorage.getItem('token'))
使用localStorage方法设置、获取和删除令牌
查看此链接了解更多详细信息:https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
检查标记是否存在,你可以这样做:
const isAuth = !!localStorage.token
您可以使用removeItem()从本地存储中删除项。
localStorage.removeItem('token')
您也可以使用getItem()函数来检索条目。
localStorage.getItem('token')
当它不存在时将返回null。
文档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.parse
和JSON.stringify
是本地存储读写的同义词。Null也不例外。