Saltar al contenido

Operadores lógicos de JavaScript (&&, ||, !)

Los operadores lógicos son fundamentales para controlar el flujo y la toma de decisiones en JavaScript. Esta guía está diseñada para ayudar a los principiantes a comprender y utilizar eficazmente los operadores lógicos de JavaScript: &&, ||, ! y !!, con ejemplos completos y totalmente explicados.

Resumen de los operadores lógicos de JavaScript

Los operadores lógicos en JavaScript se utilizan para evaluar condiciones y devolver un valor en función de los operandos, y a menudo se usan para producir un resultado booleano. Incluyen:

  • && (AND lógico)
  • || (OR lógico)
  • ?? (Operador de coalescencia nula, técnicamente distinto pero comúnmente agrupado con operadores lógicos)
  • ! (NOT lógico)
  • !! (Doble NOT)

AND lógico (&&)

El operador && devuelve true solo si ambos operandos son verdaderos. En JavaScript, en realidad devuelve el valor del primer operando falso o el último operando si todos son verdaderos (cortocircuito). Se utiliza cuando se deben cumplir varias condiciones simultáneamente.


Output appears here after Run.

En este ejemplo, isLoggedin y hasPermissions deben ser verdaderos para que se otorgue el acceso. Si alguno es falso, el acceso será denegado.

OR lógico (||)

El operador || devuelve true si al menos uno de los operandos es verdadero. En JavaScript, devuelve el valor del primer operando verdadero o el último operando si todos son falsos (cortocircuito). Permite condiciones de respaldo o alternativas.


Output appears here after Run.

Aquí, la operación puede continuar si networkStatus es 'good' o savedOffline es verdadero, proporcionando un respaldo si el estado de la red es deficiente.

INFO

Utiliza el operador de coalescencia nula ?? para establecer valores predeterminados solo cuando las variables sean null o undefined. Es una alternativa más limpia que ||, especialmente al manejar valores falsos como 0 o '' que no deberían usar un valor predeterminado.

Operador de coalescencia nula

Este operador es particularmente útil en comparación con || para manejar casos donde valores falsos como 0 o '' son válidos y no deben activar valores predeterminados. Por ejemplo:


Output appears here after Run.

En este ejemplo, itemCount se establece en 0. Al usar ??, defaultCount permanece en 0 porque ?? solo reacciona a null o undefined, no a otros valores falsos. Esto evita valores predeterminados no deseados y deja claro tu intención.

NOT lógico (!)

El operador ! invierte la veracidad de su operando. Es útil para alternar estados o verificar condiciones negativas.


Output appears here after Run.

Este ejemplo verifica si isActive es falso y, en ese caso, indica que se requiere la activación.

Doble NOT (!!)

El operador !! convierte un valor a un booleano, asegurando que represente estrictamente true o false.


Output appears here after Run.

!!0 se evalúa como false porque 0 es un valor falso en JavaScript. El doble NOT aclara la conversión a booleano.

Uso de !! para verificar el estado booleano de una propiedad de objeto

A veces, quieres verificar si una propiedad de un objeto no solo está presente, sino que también es verdadera. El operador !! es perfecto para convertir cualquier valor a un contexto estrictamente booleano, dejando claro y explícito si la propiedad cumple las condiciones.

Considera un escenario en el que tienes un objeto de usuario que podría tener una propiedad llamada isActive. Quieres realizar una acción solo si isActive no solo está presente, sino que es verdadera.


Output appears here after Run.

En este ejemplo:

  • El objeto de usuario tiene una propiedad isActive que es undefined.
  • Usar !!user.isActive convierte undefined en false.
  • Dado que isActive es undefined (que es un valor falso), !!undefined da como resultado false, y la salida será "John no está activo."

Escenarios de uso práctico

Renderizado condicional


Output appears here after Run.

Este fragmento demuestra el uso de && para el renderizado condicional, mostrando 'UserDashboard' solo cuando isLoggedIn es verdadero.

Gestión de valores predeterminados con OR lógico


Output appears here after Run.

Si currentUser es null, userName toma por defecto 'Guest'. Esto asegura que el saludo siempre sea personalizado.

Simplificación de condiciones complejas


Output appears here after Run.

Este código otorga acceso completo solo a usuarios verificados que sean administradores o editores, utilizando efectivamente tanto && como ||.

Mejores prácticas

  • Evita la complejidad: Mantén las expresiones lógicas simples. Si se vuelven demasiado complejas, divídelas en partes más pequeñas y manejables.
  • Aprovecha el cortocircuito: Utiliza la naturaleza de cortocircuito de && y || para optimizar el rendimiento evitando evaluaciones innecesarias.
  • Conversión booleana explícita: Usa !! para convertir claramente los valores a true o false, mejorando la legibilidad y previsibilidad de tu código.
  • Comparaciones consistentes: Asegúrate de que los tipos de datos en las comparaciones sean consistentes para evitar comportamientos inesperados debido a la coerción de tipos de JavaScript.

Conclusión

Comprender y utilizar los operadores lógicos en JavaScript es esencial para escribir código efectivo y eficiente. A través de ejemplos bien explicados y mejores prácticas, puedes dominar estos operadores, mejorando tanto la funcionalidad como la fiabilidad de tus aplicaciones en JavaScript. Experimenta con estos operadores para comprender plenamente su potencial en diversos escenarios.

Práctica

¿Cuál es el comportamiento de los operadores lógicos en JavaScript?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.