Подтвердить что ты не робот

Как работает document.cookie?

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

"name=John; gender=male";

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

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

Если я попробую document.cookie = null;, то он даже ничего не сделает.

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

4b9b3361

Ответ 1

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

Прочитайте все об этом на MDN.

Ответ 2

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

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

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

Ответ 3

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

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