相关疑难解决方法(0)

无法在LocalStorage中设置布尔值?

我注意到我无法设置布尔值localStorage

localStorage.setItem("item1", true);
alert(localStorage.getItem("item1") + " | " + (localStorage.getItem("item1") == true));
Run Code Online (Sandbox Code Playgroud)

总是true | false在我尝试测试警报时localStorage.getItem("item1") == "true"发出警报...所以我无法将项目设置localStorage为true?

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

所以

alert("true" == true); // should be true? 
Run Code Online (Sandbox Code Playgroud)

javascript

99
推荐指数
5
解决办法
6万
查看次数

false变量不会验证为false

我无法理解代码中的一些奇怪的行为,我想知道是否有人能告诉我我做错了什么?

我有一个布尔变量isWaiting,并将其保存为falselocalStorage,当它被检索到,它显示为false,但是当你做验证,它不这样认为.这是一个复制我的问题的小代码:

(function(){
    localStorage.setItem("isWaiting", false);
    var isWaiting = localStorage.getItem("isWaiting");
    console.log("isWaiting = " + isWaiting)
    console.log("Is isWaiting False? " + Boolean(isWaiting === false));
    // I have tried it as this as well
    console.log("Is isWaiting False? " + (isWaiting === false));
})()
Run Code Online (Sandbox Code Playgroud)

应得:

isWaiting = false

是假的吗?真正

生产:

isWaiting = false

是假的吗?false⬅ 这显然是错的,为什么会发生这种情况呢?

我究竟做错了什么?错误的布尔值是否会在某个localStorage过程中被破坏,如果是这样,我将如何解释它,如果没有,那么什么是错的?


解决方案更新:10/09/18

基于那种答复帮助我确认,确实我的怀疑是,LS过程屠宰值类型是正确的,更具体地@提供的解决方案bhojendra-rauniyar,我已经改变了代码,以纠正检索时刻的类型权然后在整个代码中正常处理它,避免添加大量代码,似乎已经完成了这个技巧,谢谢大家的帮助.

...
    var isWaiting = Boolean(JSON.parse(localStorage.getItem("isWaiting")));
...
Run Code Online (Sandbox Code Playgroud)

javascript logical-operators local-storage

2
推荐指数
1
解决办法
45
查看次数