我正在使用cookie,使用cookie的值設置其他代碼變量。jQuery cookie將字符串布爾值設置爲
我對cookie的默認狀態作爲這樣定義的數據:
const Cookie = {
config: {
name: 'Test_Cookie',
expire: 1,
value: true,
},
...
}
當標準被滿足時,該cookie被設置爲第一個時間,使用this.config.value
設置cookie的值true
:
setCookie: function() {
if (!this.isCookieSet()) {
$.cookie(this.config.name, this.config.value, this.config.expire);
}
},
不過,我當我的代碼返回cookie的值算出我得到"true"
回爲一個字符串,而不是僅僅true
。例如(名稱上面的例子中改變爲簡單起見):
如果我嘗試做cookie的value
比較,並使用=== true
我得到一個錯誤的結果。如果我做=== "true"
然後我得到一個真正的結果:
showStuff = $.cookie('Test_Cookie') === "true"; // showStuff = true;
OR
showStuff = $.cookie('Test_Cookie') === true; // showStuff = false;
爲什麼當設置cookie值變化的變量類型?
Cookies是真的只是字符串。將一個布爾值保存爲一個cookie實際上會使其成爲一個字符串。您保存爲cookie的任何值都會發生同樣的情況。 – DelightedD0D
僅供參考,'localstorage'也一樣。 – DelightedD0D