首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript: localStorage瘫痪if-语句吗?

Javascript: localStorage瘫痪if-语句吗?
EN

Stack Overflow用户
提问于 2015-06-08 07:33:31
回答 2查看 398关注 0票数 1

生成一个布尔变量"disableReplaceDate",用于if-语句。必须以某种方式保存变量,因为页面重新加载,我需要使用它来“检查状态”,这样它就不会在每次页面重新加载时返回到默认状态。

然后,为了省去大量的时间和麻烦,因为我不能将它们作为参数发送到URL中(它已经被一个复杂的java文件占用了,该文件处理了所有的java,而我一点也不擅长java),所以我决定使用window.localStorage setItem、getItem和removeItem等,所以基本上是这样。

代码语言:javascript
复制
 var disableReplaceDate = false;
 window.localStorage.setItem("dRD", false);
 disableReplaceDate = window.localStorage.getItem("dRD");

但现在,如果-声明,看起来如下:

代码语言:javascript
复制
 if(disableReplaceDate == true){/*do some stuff*/}

不再起作用了!但当我把它改成

代码语言:javascript
复制
 if(disableReplaceDate){/*do some stuff*/}

它突然开始工作了。

如果这还不够奇怪的话,它不会对所有使用变量的if -语句做到这一点,我尝试将它们更改为(!disableReplaceDate)之类的,但这并不能使它们工作。

为什么会这样呢?我该怎么解决呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-08 07:36:05

localStorage只存储字符串。在需要布尔值的上下文中,"false"计算为true (例如,if语句)。

你应该换衣服

代码语言:javascript
复制
disableReplaceDate = window.localStorage.getItem("dRD");

代码语言:javascript
复制
disableReplaceDate = window.localStorage.getItem("dRD") === "true";
票数 4
EN

Stack Overflow用户

发布于 2015-06-08 07:42:26

我认为,因为变量的类型是"string“--参见

代码语言:javascript
复制
typeof(disableReplaceDate) 

输出将是string

我想你需要用这种方式来测试if(disableReplaceDate === "false")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30703459

复制
相关文章

相似问题

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