Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Resultados de operaciones lógicas Fundamentos de JavaScript

Hasta ahora viste que ||, ! y && se usan para combinar condiciones:

edad > 18 && tieneDocumento
rol === 'admin' || rol === 'editor'

¿Qué pasa si una variable no tiene valor?

Cuando programamos, a veces una variable no tiene nada dentro. No es un error, simplemente no se ha definido aún.

const usuario = '';
const edad = 0;

¿Qué hacemos si no hay nombre? ¿O si alguien tiene 0 años? JavaScript nos ayuda con: || y &&.

|| — "O bien esto… o lo otro"

Este operador busca el primer valor que funcione. Si el primero no sirve (está vacío, es 0, etc.), usa el segundo.

Asignar un valor por defecto si no hay nombre

const nombre = usuario || 'Anónimo';
  • Si usuario tiene algo (como 'Ana'), se usa ese valor.
  • Si usuario está vacío (''), se usa 'Anónimo'.

Otros ejemplos

console.log('Ana' || 'Otro');     // "Ana" — se usa el primero
console.log('' || 'Otro');        // "Otro" — el primero está vacío
console.log(0 || 18);             // 18 — cuidado: el 0 se ignora
console.log(undefined || 'Ninguno'); // "Ninguno"

&& — "Solo si esto… entonces lo otro"

Este operador solo sigue si todo está bien: Si la primera parte es verdadera, evalúa la siguiente.

Verificar si existe algo antes de acceder

const mostrarNombre = usuario && usuario.nombre;
  • Si usuario no existe, se detiene.
  • Si existe, intenta acceder a usuario.nombre.

Otros ejemplos

console.log(1 && 'Hola');         // "Hola" — todo bien
console.log(0 && 'Hola');         // 0 — se detiene
console.log('' && 'Funciona');  // "Funciona"
console.log(undefined && 123);    // undefined

¡Error común con ||!

A veces queremos comprobar si una variable tiene un valor específico, por ejemplo 'admin' o 'editor', y escribimos esto:

if (rol === ('admin' || 'editor')) {
  // ...
}

❌ Parece correcto, pero en realidad no funciona como esperas. El operador || elige el primer valor que funcione, así que 'admin' || 'editor' siempre devuelve 'admin'.

✅ Si quieres verificar ambos, escribe esto:

rol === 'admin' || rol === 'editor';

⚠️ Cuidado con valores como 0 o ''!

Mira este caso:

const edad = 0 || 18;
console.log(edad); // 18 ❌

Queríamos que edad fuera 0, pero JavaScript vio que 0 "no sirve" y usó el 18.

👉 Esto pasa con algunos valores especiales como:

0, '', null, undefined, false, NaN

JavaScript los considera como "vacíos" y los salta al usar ||. Más adelante aprenderás a usar un operador más preciso (??) para estos casos.

! — Negar un valor

Este operador invierte un valor lógico.

console.log(!true);  // false
console.log(!false); // true

También puedes usarlo para ver si algo "tiene valor" o no:

console.log(!'');      // true (está vacío)
console.log(!'Hola');  // false (tiene algo)
console.log(!0);       // true (es cero)
console.log(!123);     // false (tiene número)

!! — Ver si algo es "verdadero" o "vacío"

A veces queremos saber si una variable tiene algo o nada. Con !! podemos convertirlo a true o false directamente.

console.log(!!'Hola'); // true
console.log(!!'');     // false
console.log(!!0);      // false
console.log(!!42);     // true

✅ Esto es útil cuando en el futuro empieces a hacer verificaciones, como:

// Aún no lo estudiaste, pero luego escribirás cosas así:
if (!!email) {
  // Solo se ejecuta si email tiene contenido
}
Operador ¿Qué hace? Ejemplo Resultado
|| Devuelve el primer valor útil (o el último si todos fallan) 'Ana' || 'Otro' 'Ana'
&& Devuelve el primer valor que falle (o el último si todos funcionan) 'Sí' && 'Funciona' 'Funciona'
! Invierte el valor (truefalse, falsetrue) !false true
!! Convierte cualquier cosa a true o false !!'Texto' true


Resumen

  • || (OR) devuelve el primer valor verdadero o el último si todos son falso.
  • && (AND) devuelve el primer valor falso el último si todos son verdaderos.
  • Valores falsos: 0, '', null, undefined, NaN, false.
  • Usar || para valores predeterminados puede generar errores si 0 es un valor válido. Es mejor usar ??.
  • El operador de negación ! niega un booleano, y !! convierte cualquier valor en booleano.

Estos operadores son muy útiles en JavaScript, pero debemos entender bien sus reglas para evitar errores. ¡Practícalos y úsalos sabiamente!

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.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY