localStorage
API du navigateur pour stocker de petites quantités de données (5 à 10 Mo) par domaine — elles persistent jusqu'à ce qu'on les efface explicitement.
Une API clé-valeur synchrone : localStorage.setItem('theme','dark'). Des chaînes uniquement ; pour les objets, passer par JSON.stringify. Ce n'est pas un endroit sûr : n'importe quel script de la page peut le lire.