Si je reçois Chrome pour me montrer document.cookie
en allant dans la console et en tapant document.cookie;
ça me donnera, dis:
"name=John; gender=male";
Mais si je tape, disons, document.cookie = 5;
il suffit d'ajouter 5;
au début de la chaîne, donc j'obtiens:
"5; name=John; gender=male";
Si j'essaie document.cookie = null;
alors ça ne fait même rien.
Comment se peut-il? C'est une variable, non? Alors pourquoi l'opérateur d'affectation ne fonctionne-t-il pas comme il le devrait? Est-ce en fait juste un peu de sucre syntaxique plutôt qu'une vraie variable? Et si oui, que recouvre précisément le sucre?
document.cookie
a un comportement très spécial. Comme vous l'avez vu, l'assigner ajoute (ou met à jour) un cookie (ou plusieurs cookies), plutôt que remplaçant tous les cookies. C'est très inhabituel.
Lisez tout à ce sujet sur MDN .
Pourquoi ne pas jeter un œil à MDN?
La chaîne sur le côté droit de l'opérateur d'affectation à document.cookies
doit être une liste séparée par des points-virgules de paires clé-valeur, c'est-à-dire document.cookie = "aKey=5"
définira/mettra à jour le cookie aKey
.
Donc oui, document.cookie
montre un comportement spécial.
Voici un exemple de votre " issue ". En outre, il dit ce qui suit:
Vous pouvez supprimer un cookie en mettant simplement à zéro son heure d'expiration.