Operadores
Aritmeticos, comparacion, logicos
Operadores en JavaScript
Los operadores te permiten realizar operaciones con valores y variables. JavaScript tiene varios tipos de operadores.
Operadores Aritmeticos
const a = 10;
const b = 3;
console.log(a + b); // 13 (suma)
console.log(a - b); // 7 (resta)
console.log(a * b); // 30 (multiplicacion)
console.log(a / b); // 3.333... (division)
console.log(a % b); // 1 (modulo/residuo)
console.log(a ** b); // 1000 (potencia)
// Incremento y decremento
let contador = 5;
contador++; // 6
contador--; // 5
++contador; // 6 (pre-incremento)
--contador; // 5 (pre-decremento)
Operadores de Comparacion
// Igualdad
console.log(5 == "5"); // true (igualdad flexible - convierte tipos)
console.log(5 === "5"); // false (igualdad estricta - sin conversion)
console.log(5 != "5"); // false
console.log(5 !== "5"); // true
// Siempre usa === y !== para evitar bugs!
// Comparaciones
console.log(10 > 5); // true
console.log(10 < 5); // false
console.log(10 >= 10); // true
console.log(10 <= 9); // false
Operadores Logicos
// AND (&&) - ambos deben ser true
console.log(true && true); // true
console.log(true && false); // false
// OR (||) - al menos uno debe ser true
console.log(true || false); // true
console.log(false || false); // false
// NOT (!) - invierte el valor
console.log(!true); // false
console.log(!false); // true
// Cortocircuito
const usuario = null;
const nombre = usuario && usuario.nombre; // null (no evalua usuario.nombre)
const porDefecto = nombre || "Anonimo"; // "Anonimo"
// Nullish coalescing (??) - ES2020
const valor = null ?? "por defecto"; // "por defecto"
const cero = 0 ?? "por defecto"; // 0 (solo null/undefined activan ??)
Operadores de Asignacion
let x = 10;
x += 5; // x = x + 5 -> 15
x -= 3; // x = x - 3 -> 12
x *= 2; // x = x * 2 -> 24
x /= 4; // x = x / 4 -> 6
x %= 4; // x = x % 4 -> 2
x **= 3; // x = x ** 3 -> 8
Operador Ternario
const edad = 20;
const estado = edad >= 18 ? "adulto" : "menor";
console.log(estado); // "adulto"
// Equivalente a:
// if (edad >= 18) {
// estado = "adulto";
// } else {
// estado = "menor";
// }