首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在LocalStorage中设置布尔值?

无法在LocalStorage中设置布尔值?
EN

Stack Overflow用户
提问于 2010-07-16 16:33:06
回答 8查看 112.8K关注 0票数 147

我注意到我不能在localStorage中设置布尔值

代码语言:javascript
运行
复制
localStorage.setItem("item1", true);
alert(localStorage.getItem("item1") + " | " + (localStorage.getItem("item1") == true));

当我尝试测试localStorage.getItem("item1") == "true"时,总是向true | false发出警报它发出的警报为真...如何将localStorage中的项设置为true?

即使它是一个字符串,我还以为只有===会检查类型呢?

所以

代码语言:javascript
运行
复制
alert("true" == true); // should be true? 
EN

回答 8

Stack Overflow用户

发布于 2010-07-16 16:41:47

目前,所有的实现Safari、WebKit、Chrome、FirefoxIE都遵循WebStorage标准的old version,其中存储项的值只能是一个字符串。

一种选择是使用JSON parsestringify方法来序列化和反序列化数据,就像我不久前在another question中建议的那样,例如:

代码语言:javascript
运行
复制
var value = "true";
console.log(JSON.parse(value) === true); // true

票数 126
EN

Stack Overflow用户

发布于 2016-05-02 16:46:53

我的解决方案:

代码语言:javascript
运行
复制
function tytPreGetBool(pre) {
    return localStorage.getItem(pre) === 'true';
}
票数 18
EN

Stack Overflow用户

发布于 2010-07-16 17:09:55

这与CMS的答案有关。

下面是我用来处理这个问题的解析部分的一个小函数(该函数将在浏览器实现赶上规范之后继续做正确的事情,所以不需要记住稍后更改代码):

代码语言:javascript
运行
复制
function parse(type) {
   return typeof type == 'string' ? JSON.parse(type) : type;
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3263161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档