TechLead

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";
// }