问题描述
在localStorage中存储布尔值,这个值被转换为字符串.现在尝试将此值从 localStorage 转换回布尔值,我需要使用 JSON.parse()
方法,更方便的 !!
不起作用.
Storing boolean value in localStorage, this value is converted to string.
Now trying to converting back this value from localStorage to boolean, i need to use JSON.parse()
method, the more handy !!
doesn't work.
代码示例:
var test = false;
localStorage['test'] = test;
console.log("JSON.parse returns: ", JSON.parse(localStorage['test']), "expected: ", test);
console.log("'!!' returns: ", !! localStorage['test'], "expected: ", test);
-jsFiddle-
我很困惑为什么会出现这种行为.有什么解释吗?
I'm quite confused why this behaviour. Any explaination?
PS:在这里使用 getter/setter localStorage 方法无关紧要,结果相同.
PS: using getter/setter localStorage methods doesn't matter here, same result.
推荐答案
本地存储存储字符串,恐怕不管输入是什么(如果你用一个对象喂它,它会自动转换成它的标准toString()
方法)...所以你在做 !!在字符串上测试
,它总是true
.
Local storage stores strings , I'm afraid, whatever the input (if you feed it with an object, it will be converted automatically with its standard toString()
method)... So you're doing !! test
on a string, which is always true
.
在处理 DOM 存储
这篇关于localStorage 和布尔“字符串"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!