¿Cómo comprobar si un elemento de Almacenamiento está configurado?

Resuelto Jiew Meng asked hace 14 años • 18 respuestas

¿ 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);
}
Jiew Meng avatar Jul 16 '10 14:07 Jiew Meng
Aceptado

El getItemmétodo en la especificación WebStorage devuelve explícitamente nullsi 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
Christian C. Salvadó avatar Jul 16 '2010 07:07 Christian C. Salvadó

Puedes usar hasOwnPropertyel 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.

Stephan Hoyer avatar Jan 04 '2017 11:01 Stephan Hoyer

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 */
Vladislav avatar Feb 20 '2014 12:02 Vladislav