Comment puis-je vérifier si un élément est défini `` ? Je suis actuellement en utilisant
Réponses
Trop de publicités?L' getItem
méthode dans le WebStorage spécification, renvoie explicitement null
est l'élément n'existe pas:
... Si la clé n'existe pas dans la liste associée à l'objet, cette méthode doit retourner la valeur null. ...
Donc, vous pouvez:
if (localStorage.getItem("infiniteScrollEnabled") === null) {
//...
}
Remarque: bien que le WebStorage spécification, par définition, permet de stocker n'importe quel objet JavaScript comme la valeur d'un élément de stockage, ce n'est pas mis en œuvre encore sur n'importe quel navigateur (rapports de Bogue: Firefox, Chrome), le stockage des valeurs des éléments sont de type converti en chaîne.
Cela peut vous donner des problèmes, comme dans votre exemple, si vous stockez une valeur Booléenne, elle sera convertie en chaîne de caractères, par exemple:
localStorage.setItem('test', true);
localStorage.getItem('test') == true; // false!!!
Cela arrive parce que nous comparons une Chaîne avec une valeur Booléenne:
"true" == true; // false
"false" == false; // false
Aussi, si vous essayez de stocker un objet, il sera également converti en Chaîne de caractères.
Voir cette question: