localStroge 存储布尔值的问题

深藏阁楼爱情的钟 2022-05-16 10:20 240阅读 0赞

localStroge 存储布尔值在使用的u欧城中遇到了很多问题,后来才发现,存进去的布尔值,取出来全变成了字符串。。。。。。。
自然在使用的时候出现了一堆bug
事实上,不止是布尔值,其他类型的值也全变成字符串类型
localStroge注意事项
在项目中,我们就是要使用布尔值怎么办,我们要将得到的数据进行处理。
两种情况,通常布尔值我们会存储true和false,这样我们得到的就是“true”和“false”。我们判断一下执行操作

  1. if (this.$store.state.data_switch === 'true') {
  2. this.data_switch = true
  3. } else {
  4. this.data_switch = false
  5. }

事实上这样是相当不方便的,每个值都要判断一下,很麻烦,页面代码也很冗余。“true”和“false”字符串转换成布尔值网上有很多例子,但是都比较麻烦,因为“false”本身就是true的
那怎么办呢?
JS中有六种情况是false
分别是: 0, ”, null, undefined, NaN 和 false, 其他(包括{}, [], Infinity)为true
我想到数字0的布尔值是false,所以利用0和1来存储,这样操作取出的数据也比较的方便
我们存进去数字0和1,取出来的时候是‘0’和‘1’
,把它们转换成数值型, Number() 强制类型转换,是可以的

  1. this.home = Number(this.$store.state.home)
  2. this.inventory = Number(this.$store.state.inventory)

这样我们就得到了数值了可以使用判断布尔值的条件去对数据操作了。

封装一个localStroge 的JS函数

发表评论

表情:
评论列表 (有 0 条评论,240人围观)

还没有评论,来说两句吧...

相关阅读

    相关 关于Java布尔

    >   摘自《Java核心技术 卷I》P36.C++注释   在C++中,数值甚至指针都可以代替布尔值。值 0 相当于布尔值false,非 0 值相当于布尔值true。