JSON.stringify convierte lo que le pasas a formato JSON.
https://developer.mozilla.org/es/docs/Web/javascript/Referencia/Objetos_globales/JSON/stringifyAsí puedes almacenar un objeto o un array en el localStorage, puesto que este solo permite strings. Lo que haces en esa línea es literalmente convertir el objeto
data a JSON y almacenarlo en localStorage como
partida.
data = (save ? JSON.parse(save) : {score: 0});
A esto se le llama una condicional ternaria u operador ternario.
https://developer.mozilla.org/es/docs/Web/javascript/Referencia/Operadores/Conditional_OperatorLiteralmente se traduce a esto:
if (save == true) {
data = JSON.parse(save);
} else {
data = {score:0};
}
Lo que hace es muy simple, comprueba si
save tiene un dato válido comparándolo como booleano y si es así, le asigna a la variable
data la salida de
JSON.parse, de lo contrario, le asigna un objeto con puntuación cero por defecto.
JSON.parse es lo contrario a
JSON.stringify. Convierte un string JSON a objeto/array en javascript.
https://developer.mozilla.org/es/docs/Web/javascript/Referencia/Objetos_globales/JSON/parse
Encontré un ejemplo usando JQuery:
Ese ejemplo es MUY MUY malo.
1. Almacenan input del usuario de forma directa y lo muestran sin sanitizar permitiendo ejecución XSS.
2. Mezclan tanto jQuery como javascript nativo a la hora de hacer selectores. En unos lados usan
$('...') y en otros usan
getElementById. Fatal.
3. Usan tags obsoletos en HTML5.
<center> está marcado como obsoleto en HTML5.
4. Meten el jQuery en el
<head>. El jQuery siempre debe ir en el
<body> a no ser que haya alguna manqueada que te obligue a meterlo en el
<head>.
En fin... poco más se puede esperar de platzi.
Saludos