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
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
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
💬 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? | Ejemplo | Resultado |
|---|---|---|---|
&& | Solo si las dos son verdaderas | true && true | true |
|| | Si al menos una es verdadera | false || true | true |
! | Invierte el valor | !true | false |
Resumen
&&: Solo estruesi las dos condiciones lo son.||: Estruesi al menos una condición lo es.!: Niega o invierte el valor (truepasa afalsey viceversa).
Materiales adicionales
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.