我正在使用cookie,使用cookie的值设置其他代码变量。
我已经定义了有关cookie的默认状态的数据,如下所示:
const Cookie = {
config: {
name: 'Test_Cookie',
expire: 1,
value: true,
},
...
}
符合条件时,将第一次this.config.value
设置cookie,用于将cookie的值设置为true
:
setCookie: function () {
if (!this.isCookieSet()) {
$.cookie(this.config.name, this.config.value, this.config.expire);
}
},
但是,当我在代码中返回cookie值时,发现返回的"true"
是字符串而不是just true
。例如(为简单起见,在上面的示例中更改了名称):
如果我尝试对value
Cookie进行比较并使用,=== true
则会得到错误的结果。如果我这样做,=== "true"
那么我会得到真实的结果:
showStuff = $.cookie('Test_Cookie') === "true"; // showStuff = true;
或者
showStuff = $.cookie('Test_Cookie') === true; // showStuff = false;
设置后,为什么cookie值的变量类型会更改?
Cookie是字符串。您需要将cookie值转换为所需的类型。布尔值被保存为true或false,因为这是布尔值的字符串表示形式。
您可以使用以下内容。
var myBool = Boolean($.cookie('Test_Cookie'));
或者
var myBool = ($.cookie('Test_Cookie') === "true");
编辑@ DelightedD0D在第一条评论中建议:
您也可以尝试- $.cookie('Test_Cookie') === "true"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句