Как именно происходит документирование.работа с печеньем?


Если я получу Chrome, чтобы показать мне document.cookie, зайдя в консоль и набрав document.cookie;, он даст мне, скажем:

"name=John; gender=male";

Но тогда, если я наберу, скажем, document.cookie = 5;, все, что он делает, это добавляет 5; к началу строки, поэтому я получаю:

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

Если я попытаюсь document.cookie = null;, то это даже ничего не даст.

Как это может быть? Это переменная величина, не так ли? Так почему же оператор присваивания не работает так, как должен? Это на самом деле просто немного синтаксического сахара, а не реальный переменная? И если да, то что именно скрывает сахар?

3 32

3 ответа:

document.cookie имеет Очень особое поведение. Как вы уже видели, присвоение ему добавляет (или обновляет) файл cookie (или несколько файлов cookie), а не заменяет все файлы cookie. Это очень необычно.

Читайте все об этом:

Почему бы не взглянуть на MDN?

Строка справа от оператора присваивания document.cookies должна представлять собой разделенный точкой с запятой список пар ключ-значение, т. е. document.cookie = "aKey=5" установит/обновит файл cookie aKey.

Так что да, document.cookie показывает особое поведение.

Вот пример вашего"вопроса ". Кроме того, в нем говорится следующее:

Вы можете удалить файл cookie, просто обновив срок его действия до ноль.