document.cookie究竟是如何工作的?

时间:2011-07-22 15:02:53

标签: javascript debugging google-chrome javascript-debugger

如果我让Chrome向我显示document.cookie,请进入控制台并输入document.cookie;它会给我,说:

"name=John; gender=male";

但是,如果我输入,比如document.cookie = 5;,它所做的只是将5;添加到字符串的开头,所以我得到:

"5; name=John; gender=male";

如果我尝试document.cookie = null;,那么它甚至都没有做任何事情。

这怎么可能?这是一个变量,不是吗?那么为什么赋值运算符不应该以它应该的方式工作呢?它实际上只是一些语法糖而不是一个真正的变量?如果是这样,糖究竟是什么??

3 个答案:

答案 0 :(得分:32)

document.cookie非常特殊行为。如您所见,分配添加(或更新)cookie(或多个cookie),而不是替换所有cookie。这很不寻常。

阅读所有相关内容:

答案 1 :(得分:6)

Why not have a look at MDN?

document.cookies赋值运算符右侧的字符串应该是以分号分隔的键值对列表,即document.cookie = "aKey=5"将设置/更新aKey cookie。< / p>

是的,document.cookie表现出特殊行为。

答案 2 :(得分:3)

以下是“issue”的示例。此外,它说:

  

您只需将其到期时间更新为,即可删除Cookie   零。