测试null $ .cookie()

时间:2014-01-22 11:49:49

标签: jquery cookies

关于jQuery中的cookie的奇怪问题。我有以下内容:

console.log("ShowMoveItems() : " + $.cookie('selectedmoveitems'));
console.log("ShowMoveItems() ISNULL : " + $.cookie('selectedmoveitems') === null);

在Firefox的控制台中输出以下内容:

"ShowMoveItems() : null"
false

为了感兴趣,我还尝试了== null,结果与===null相同。为什么在"ShowMoveItems() : " + $.cookie('selectedmoveitems')将cookie显示为null时会出现这种情况?

更新来自@RohanKumar的评论:

console.log("ShowMoveItems() : ")
console.log($.cookie('selectedmoveitems'));
console.log("ShowMoveItems() ISNULL : ");
console.log($.cookie('selectedmoveitems') === null);

"ShowMoveItems() : "
null
"ShowMoveItems() ISNULL : "
true

1 个答案:

答案 0 :(得分:0)

当转换为字符串时,如果您有文字"null"null字符串,则会获得"null"。没有办法说出来。因此,我建议您让控制台按原样打印变量:

console.log("ShowMoveItems() : ", $.cookie('selectedmoveitems'));

...或(如果您的控制台使用与Firebug兼容的API):

console.log("ShowMoveItems() : %o ", $.cookie('selectedmoveitems'));

此外,===运算符的lower precedence+(加法)运算符的{{3}},因此:

"ShowMoveItems() ISNULL : " + $.cookie('selectedmoveitems') === null

...等于:

("ShowMoveItems() ISNULL : " + $.cookie('selectedmoveitems')) === null

...无论false返回什么,显然都是$.cookie()