生成一个布尔变量"disableReplaceDate",用于if-语句。必须以某种方式保存变量,因为页面重新加载,我需要使用它来“检查状态”,这样它就不会在每次页面重新加载时返回到默认状态。
然后,为了省去大量的时间和麻烦,因为我不能将它们作为参数发送到URL中(它已经被一个复杂的java文件占用了,该文件处理了所有的java,而我一点也不擅长java),所以我决定使用window.localStorage setItem、getItem和removeItem等,所以基本上是这样。
var disableReplaceDate = false;
window.localStorage.setItem("dRD", false);
disableReplaceDate = window.localStorage.getItem("dRD");但现在,如果-声明,看起来如下:
if(disableReplaceDate == true){/*do some stuff*/}不再起作用了!但当我把它改成
if(disableReplaceDate){/*do some stuff*/}它突然开始工作了。
如果这还不够奇怪的话,它不会对所有使用变量的if -语句做到这一点,我尝试将它们更改为(!disableReplaceDate)之类的,但这并不能使它们工作。
为什么会这样呢?我该怎么解决呢?
发布于 2015-06-08 07:36:05
localStorage只存储字符串。在需要布尔值的上下文中,"false"计算为true (例如,if语句)。
你应该换衣服
disableReplaceDate = window.localStorage.getItem("dRD");至
disableReplaceDate = window.localStorage.getItem("dRD") === "true";发布于 2015-06-08 07:42:26
我认为,因为变量的类型是"string“--参见
typeof(disableReplaceDate) 输出将是string
我想你需要用这种方式来测试if(disableReplaceDate === "false")
https://stackoverflow.com/questions/30703459
复制相似问题