Mi equipo y yo estamos desarrollando una aplicación Phonegap y estamos encontrando algunos problemas. Una de nuestras funciones se ve así:

var email = localStorage.getItem("email");
if (email != "" && email.type != undefined) {
    //Do stuffs
} else {
    //Do other stuffs
};

Pero, a pesar de que el elemento de almacenamiento local 'correo electrónico' se configura en mi correo electrónico, aún ejecuta el contenido de la instrucción else, no el bloque principal if. Tal vez la respuesta está justo debajo de nuestras narices, simplemente no lo sabemos (son las 6 am aquí, muy cansado), por lo que cualquier ayuda es apreciada.

0
Liam Scaife 29 oct. 2017 a las 20:16

3 respuestas

La mejor respuesta

Esto se debe a que email siempre devolverá null si no está configurado. Recomiendo simplemente hacer:

var email = localStorage.getItem("email");
 if (email !== null) {
   //Do stuffs
 } else {
   //Do other stuffs 
 };
0
Kwesi 29 oct. 2017 a las 23:00

¿Podrías intentarlo así?

var email = window.localStorage.getItem("email");
0
Uğur Erdal 29 oct. 2017 a las 17:22

En general, creo que localStorage.getItem devuelve null si no está configurado. Entonces deberías poder hacer

var email = localStorage.getItem("email");
if (email) {
    //Do stuffs
} else {
    //Do other stuffs
};

Tenga en cuenta que la cadena vacía "" es falsa (se evalúa como falsa) en JavaScript.

0
wildabeast 29 oct. 2017 a las 22:55