Fundamentos de JavaScript

Teoría: Operadores lógicos

Hasta ahora aprendiste a comparar valores: si algo es mayor, igual o distinto. Ahora vas a combinar varias condiciones al mismo tiempo.

Este es un paso muy importante. Casi todas las apps toman decisiones como:

  • ¿El usuario está activo y verificado?
  • ¿El precio supera los $10000 o hay un cupón de descuento?
  • ¿La persona no tiene acceso?

Operador &&: Y lógico

Sirve para preguntar si dos cosas se cumplen al mismo tiempo.

Operador y

Imagina esto: Solo puedes entrar si tienes más de 18 y tienes un documento.

edad > 18 && tieneDocumento

Solo si ambas partes son true, la respuesta será true.

Ejemplo: validación de contraseña

Imagina que estás creando una app y quieres asegurarte de que las contraseñas sean seguras. Tu regla es simple:

  • deben tener más de 8 caracteres
  • y menos de 20

Ambas condiciones deben cumplirse al mismo tiempo.

const isStrongPassword = (password) => {
  const largo = password.length;
  return largo > 8 && largo < 20;
};

console.log(isStrongPassword('123')); // false — es muy corta
console.log(isStrongPassword('1234567890')); // true — está en el rango correcto
console.log(isStrongPassword('muylargacontraseñadetest')); // false — es demasiado larga

✅ Solo devuelve true si las dos condiciones se cumplen.

Operador ||: O lógico

Sirve para preguntar si al menos una condición se cumple.

Operador O

Imagina esto: Puedes pagar con tarjeta o con PayPal.

metodo === 'tarjeta' || metodo === 'paypal'

✅ Si una de las dos es true, la respuesta es true.

Ejemplo: descuento con cupón o monto alto

Imagina que tienes una tienda online. Los clientes pueden obtener un descuento si: el monto de su compra es mayor a $10 000 o tienen un cupón llamado 'BIENVENIDO'.

const tieneDescuento = (monto, cupón) => {
  return monto > 10000 || cupón === 'BIENVENIDO';
};

// Caso 1: el monto es bajo, pero tiene cupón
console.log(tieneDescuento(5000, 'BIENVENIDO')); // true

// Caso 2: el monto es alto, sin cupón
console.log(tieneDescuento(15000, ''));          // true

// Caso 3: monto bajo y sin cupón
console.log(tieneDescuento(3000, ''));           // false

✅ Basta con que una sola condición se cumpla para que el resultado sea true.

Operador !: NO lógico

Sirve para negar o invertir un valor.

💬 Si algo es true, con ! se convierte en false. Y si es false, se convierte en true.

Piensa en un botón de encendido:

  • true = encendido
  • !true = apagado

Ejemplo: acceso solo si NO está bloqueado

Imagina que estás haciendo un sistema para una app. Algunas cuentas pueden estar bloqueadas (por ejemplo, por mal comportamiento o falta de pago). Queremos permitir el acceso solo si la cuenta NO está bloqueada.

const puedeAcceder = (estaBloqueado) => {
  return !estaBloqueado;
};

// Caso 1: cuenta activa
console.log(puedeAcceder(false)); // true — puede entrar

// Caso 2: cuenta bloqueada
console.log(puedeAcceder(true));  // false — acceso denegado

✅ Usamos ! para darle la vuelta al valor: si estaBloqueado es false, entonces !false es true → puede acceder.

Comparación

Nombre¿Qué hace?EjemploResultado
&&Solo si las dos son verdaderastrue && truetrue
||Si al menos una es verdaderafalse || truetrue
!Invierte el valor!truefalse

Resumen

  • &&: Solo es true si las dos condiciones lo son.
  • ||: Es true si al menos una condición lo es.
  • !: Niega o invierte el valor (true pasa a false y viceversa).