Guardar datos

Que tu programa recuerde cosas aunque cierren la pestaña. Es lo que guarda el récord de nuestros juegos.

El navegador tiene un cajón donde puedes dejar cosas: se llama localStorage. Lo que guardes ahí sigue estando mañana, aunque cierren el computador.

Dos instrucciones: setItem para guardar y getItem para recuperar. Cada dato se guarda con una clave, que es el nombre con el que lo pedirás después.

La primera vez que alguien entra, el cajón está vacío. Pedir algo que no existe devuelve null, que significa "acá no hay nada".

Por eso siempre se guarda con un valor por defecto. El símbolo || —el "o" que viste en decisiones— sirve justo para esto: usa lo guardado, o si no hay nada, usa este otro.

Y ojo con algo importante: todo se guarda como texto. Un número hay que convertirlo de vuelta con Number() al recuperarlo.

Como solo se guarda texto, una lista o un objeto no se pueden meter directamente. Hay que convertirlos a texto primero.

Eso lo hace JSON.stringify al guardar, y JSON.parse al recuperar. Piénsalos como empaquetar y desempaquetar.

Fíjate en el || "[]": si no hay nada guardado, JSON.parse recibiría null y daría error. Ese valor por defecto es una lista vacía en formato texto.

Una advertencia que conviene entender desde ahora: localStorage no es seguro. Cualquiera que abra las herramientas del navegador puede verlo y modificarlo en dos clics.

Sirve perfecto para récords, preferencias, el idioma elegido o un borrador. Nunca para contraseñas, datos de tarjetas ni nada que no quieras que el usuario cambie a mano.

Y ten presente: es por navegador y por dispositivo. Lo que guardes en el computador no aparece en el celular, y se borra si limpian los datos de navegación.

Guardar y recuperar con localStorage, usar valores por defecto para la primera visita, convertir listas con JSON, y qué no meter ahí nunca.

Con esto cierras la parte de aplicaciones web. Lo que viene es la más entretenida: dibujar y animar en pantalla.