¿Cómo comprobar si un elemento de Almacenamiento está configurado?
¿ Cómo puedo comprobar si un elemento está configurado localStorage
? Actualmente estoy usando
if (!(localStorage.getItem("infiniteScrollEnabled") == true || localStorage.getItem("infiniteScrollEnabled") == false)) {
// init variable/set default variable for item
localStorage.setItem("infiniteScrollEnabled", true);
}
Aceptado
El getItem
método en la especificación WebStorage devuelve explícitamente null
si el elemento no existe:
... Si la clave proporcionada no existe en la lista asociada con el objeto, entonces este método debe devolver nulo. ...
Así que puedes:
if (localStorage.getItem("infiniteScrollEnabled") === null) {
//...
}
Vea esta pregunta relacionada:
- Almacenamiento de objetos en HTML5 localStorage
Puedes usar hasOwnProperty
el método para verificar esto.
> localStorage.setItem('foo', 123)
undefined
> localStorage.hasOwnProperty('foo')
true
> localStorage.hasOwnProperty('bar')
false
Funciona en las versiones actuales de Chrome (Mac), Firefox (Mac) y Safari.
La forma más corta es utilizar el valor predeterminado, si la clave no está almacenada:
var sValue = localStorage['my.token'] || ''; /* for strings */
var iValue = localStorage['my.token'] || 0; /* for integers */