Comment fonctionne exactement document.cookie?

Si je reçois Chrome pour me montrer document.cookie en entrant dans la console et en tapant document.cookie; Il me donnera, dis:

"name=John; gender=male";

Mais alors, si je tapez, par exemple, document.cookie = 5; Tout ce qu'il fait, c'est ajouter 5; Au début de la chaîne, alors je reçois:

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

Si j'essaye document.cookie = null; Alors il ne fait même rien.

Comment se peut-il? C'est une variable, n'est-ce pas? Alors, pourquoi l'opérateur d'affectation ne fonctionne-t-il pas comme il se doit? Est-ce seulement un peu de sucre syntaxique plutôt qu'une vraie variable? Et si oui, quel est précisément le sucre qui couvre?

document.cookie a un comportement très spécial. Comme vous l'avez vu, l'attribuer ajoute (ou met à jour) un cookie (ou plusieurs cookies) plutôt que de remplacer tous les cookies. C'est très inhabituel.

Lire tout de qui le concerne:

  • MDN
  • MSDN

Pourquoi ne pas jeter un oeil à MDN?

La chaîne sur le côté droit de l'opérateur d'affectation à document.cookies devrait être une liste séparée par point-virgule des paires de valeurs-valeurs, c'est-à-dire que dookument.cookie = "aKey=5" définira / mettra à jour le cookie aKey .

Alors oui, document.cookie montre un comportement spécial.

Voici un exemple de votre " problème ". En outre, il dit ce qui suit:

Vous pouvez supprimer un cookie en mettant à jour son temps d'expiration à zéro.