Operadores y comparaciones

Digamos que estás rastreando un carrito de compras. Sumas precios, aplicas un descuento, verificas si el total supera un umbral de envío gratis, y decides si mostrar una advertencia cuando el carrito está vacío. Cada uno de esos pasos es un operador en acción: un símbolo que toma uno o dos valores y produce uno nuevo. Este capítulo cubre los operadores que usas constantemente, desde hacer operaciones aritméticas en números hasta comparar valores y combinar pruebas verdadero-o-falso.
Aritmética y asignación
Los operadores aritméticos hacen la matemática que ya conoces: + suma, - resta, * multiplica, / divide. Hay uno más que quizás no hayas visto: %, el operador de residuo, que te da lo que sobra después de una división.
const total = 8 + 5; // 13
const change = 20 - 13; // 7
const leftover = 17 % 5; // 2, porque 5 entra en 17 tres veces con 2 de sobra
console.log(total); // 13Cuando quieres actualizar un valor basándote en sí mismo, hay una forma abreviada. En lugar de escribir score = score + 10, puedes escribir score += 10. Significa lo mismo: toma el valor actual, suma 10, guarda el resultado.
let score = 100;
score += 10; // score ahora es 110
score -= 30; // score ahora es 80
console.log(score); // 80Y para mover un número hacia arriba o hacia abajo exactamente por uno, ++ y -- lo hacen en un paso. count++ suma uno, count-- quita uno.
let lives = 3;
lives--; // lives ahora es 2
console.log(lives); // 2% para el residuo después de dividir. Cuando actualizas un valor desde sí mismo, usa la forma abreviada: score += 10 en lugar de score = score + 10. Y ++ o -- mueve un número hacia arriba o hacia abajo por uno. Me tomó un tiempo confiar en estos, pero son las mismas matemáticas escritas más corto. Comparaciones
Una comparación hace una pregunta sobre dos valores y responde con true o false. Esas respuestas verdadero-o-falso son booleanos, y son lo que tu programa usa para tomar decisiones más adelante.
La comparación que usarás más es ===, que pregunta "¿son estos dos exactamente iguales?"
const answer = 42;
console.log(answer === 42); // true
console.log(answer === 7); // falseSu opuesto es !==, que pregunta "¿son estos dos diferentes?" Y para el orden hay <, >, <=, y >=, que funcionan como lo hacen en matemáticas: menor que, mayor que, menor o igual, mayor o igual.
const age = 18;
console.log(age >= 18); // true
console.log(age !== 21); // trueSiempre compara con ===, nunca ==. La versión de doble equals tiene un comportamiento que sorprende a la gente, y la versión de triple equals hace lo que esperas cada vez.
true o false. Usa === para verificar igualdad, !== para "diferente", y <, >, <=, >= para orden. Mantente con === y salta ==, porque la versión doble tiene una sorpresa y la versión triple se comporta. Operadores lógicos y veracidad
A menudo necesitas combinar más de una comparación. Los operadores lógicos te permiten hacer eso: && (y), || (o), y ! (no).
&& es true solo cuando ambos lados son true. || es true cuando al menos uno de los lados es true. ! voltea un booleano a su opuesto.
const age = 20;
const hasTicket = true;
console.log(age >= 18 && hasTicket); // true, ambos son true
console.log(age < 13 || hasTicket); // true, uno es suficiente
console.log(!hasTicket); // false, volteadoHay una idea relacionada llamada valores verdaderos y falsos. En una configuración verdadero-o-falso, JavaScript trata algunos valores no booleanos como si fueran false. Los valores falsos son false, 0, "" (una cadena vacía), null, undefined, y NaN. Todo lo demás cuenta como verdadero.
const name = "";
console.log(!name); // true, una cadena vacía es falsa&& es "ambos", || es "cualquiera", y ! voltea un booleano. Además de eso, JavaScript trata algunos valores como falso-ish: false, 0, "", null, undefined, y NaN son los falsos, y todo lo demás es verdadero. Eso es lo que permite que !name represente "no se proporcionó nombre". Dónde van los operadores desde aquí
Los operadores son los verbos del lenguaje: toman los valores que almacenas y los convierten en resultados y decisiones. La aritmética produce nuevos números, las comparaciones producen booleanos, y los operadores lógicos combinan esos booleanos en las respuestas sí-o-no en las que actúa tu programa.
Esos booleanos no hacen mucho por sí solos. El siguiente paso es usarlos para dirigir tu código, ejecutando una rama cuando una verificación pasa y otra cuando falla, que es de lo que trata el capítulo condicionales. Si alguno de los valores aquí se sintió borroso, el capítulo tipos de datos es donde los números, las cadenas, y los booleanos reciben su tratamiento completo.

