Comment vérifier si un élément de stockage est défini?

Comment puis-je vérifier si un élément est défini dans localStorage ? Actuellement j’utilise

 if (!(localStorage.getItem("infiniteScrollEnabled") == true || localStorage.getItem("infiniteScrollEnabled") == false)) { // init variable/set default variable for item localStorage.setItem("infiniteScrollEnabled", true); } 

La méthode getItem de la spécification WebStorage renvoie explicitement null si l’élément n’existe pas:

… Si la clé donnée n’existe pas dans la liste associée à l’object, cette méthode doit renvoyer null. …

Afin que vous puissiez:

 if (localStorage.getItem("infiniteScrollEnabled") === null) { //... } 

Voir cette question connexe:

  • Stockage d’objects dans HTML5 localStorage

Le moyen le plus court consiste à utiliser la valeur par défaut, si la clé n’est pas en mémoire:

 var sValue = localStorage['my.token'] || ''; /* for ssortingngs */ var iValue = localStorage['my.token'] || 0; /* for integers */ 

Vous pouvez utiliser la méthode hasOwnProperty pour vérifier cela

 > localStorage.setItem('foo', 123) undefined > localStorage.hasOwnProperty('foo') true > localStorage.hasOwnProperty('bar') false 

Fonctionne dans les versions actuelles de Chrome (Mac), Firefox (Mac) et Safari.

Vous pouvez également essayer ceci si vous voulez vérifier pour undefined:

 if (localStorage.user === undefined) { localStorage.user = "username"; } 

getItem est une méthode qui renvoie null si la valeur est introuvable.

Comment tester l’existence d’un élément dans localSotorage? celui-ci travaille dans Internet Explorer

  

Pour de vrai

 localStorage.infiniteScrollEnabled = 1; 

POUR FAUX

 localStorage.removeItem("infiniteScrollEnabled") 

CHECK EXISTANCE

 if (localStorage[""infiniteScrollEnabled""]) { //CODE IF ENABLED } 
 if(!localStorage.hash) localStorage.hash = "thinkdj"; 

Ou

 var secret = localStorage.hash || 42; 

Vous devez vérifier le type de l’élément dans le localStorage

 if(localStorage.token !== null) { // this will only work if the token is set in the localStorage } if(typeof localStorage.token !== 'undefined') { // do something with token } if(typeof localStorage.token === 'undefined') { // token doesn't exist in the localStorage, maybe set it? } 
 localStorage['root2']=null; localStorage.getItem("root2") === null //false 

Peut-être mieux faire un scan du plan?

 localStorage['root1']=187; 187 'root1' in localStorage true