问题描述
在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 和布尔“字符串"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!





大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)