Operadores logicos
Los operadores logicos te permiten combinar condiciones.
AND (&&)
Devuelve true solo si ambas condiciones son true.
const edad = 25;
const tieneLicencia = true;
// Ambas deben ser true
if (edad >= 18 && tieneLicencia) {
console.log("Puede conducir");
}
// Tabla de verdad
console.log(true && true); // true
console.log(true && false); // false
console.log(false && true); // false
console.log(false && false); // false
OR (||)
Devuelve true si al menos una condicion es true.
const esAdmin = false;
const esModerador = true;
// Solo una necesita ser true
if (esAdmin || esModerador) {
console.log("Tiene permisos especiales");
}
// Tabla de verdad
console.log(true || true); // true
console.log(true || false); // true
console.log(false || true); // true
console.log(false || false); // false
NOT (!)
Invierte el valor booleano.
const estaActivo = true;
console.log(!estaActivo); // false
console.log(!false); // true
// Doble negacion para convertir a boolean
console.log(!!"hola"); // true
console.log(!!0); // false
Nullish Coalescing (??)
Devuelve el lado derecho si el izquierdo es null o undefined.
const nombre = null;
const nombrePorDefecto = nombre ?? "Anonimo";
console.log(nombrePorDefecto); // "Anonimo"
// Diferencia con ||
const cantidad = 0;
console.log(cantidad || 10); // 10 (0 es falsy)
console.log(cantidad ?? 10); // 0 (0 no es null/undefined)
Optional Chaining (?.)
const usuario = {
nombre: "Maria",
direccion: null
};
// Sin optional chaining - error!
// console.log(usuario.direccion.calle);
// Con optional chaining - undefined
console.log(usuario.direccion?.calle); // undefined
console.log(usuario.perfil?.foto); // undefined