javascript-condicional-ternario

Qué es y cómo usar el operador ternario en Javascript

El operador ternario ?, también conocido como operador condicional, es una herramienta que nos permite escribir declaraciones condicionales de una manera más concisa y elegante.

Este operador es una forma abreviada de la estructura if...else y es útil cuando queremos tomar decisiones basadas en una condición.

Se compone de tres partes: una expresión condicional, una expresión que se evalúa si la condición es verdadera y otra expresión que se evalúa si la condición es falsa.

La sintaxis básica del operador ternario es la siguiente:

condicion ? expresion_verdadera  : expresion_falsa
  • condicion: Una expresión que se evalúa como verdadera o falsa.
  • expresion_verdadera: La expresión que se ejecutará si condicion es verdadera.
  • expresion_falsa: La expresión que se ejecutará si condicion es falsa.

Ejemplo básico

Supongamos que queremos escribir un mensaje que sea “Eres mayor de edad” si edad es mayor o igual a 18, y “Eres menor de edad” si edad es menor de 18.

Podríamos escribir el código de la siguiente manera:

const edad = 18;
let mensaje;

if (edad >= 18) {
    mensaje = "Eres mayor de edad";
} else {
    mensaje = "Eres menor de edad";
}

console.log(mensaje); // Resultado: Eres mayor de edad

Sin embargo, utilizando un condicional ternario, podemos simplificar este código en forma más compacta.

const edad = 18;
const mensaje = edad >= 18 ? 'Eres mayor de edad' : 'Eres menor de edad';

console.log(mensaje); // Resultado: Eres mayor de edad

Anidamiento de operadores ternarios

Es posible anidar operadores ternarios para expresiones condicionales más complejas. Por ejemplo,

const calificacion = 80;

const resultadoFinal = calificacion >= 90 ? 'A' :
                       calificacion >= 80 ? 'B' :
                       calificacion >= 70 ? 'C' : 
                                            'D';

console.log(resultadoFinal); // Resultado: B

En este ejemplo, se utiliza un anidamiento de operadores ternarios para asignar una calificación basada en un puntaje.

Sin embargo, es importante mantener la legibilidad del código al hacerlo.

Ejemplos prácticos

Comparar dos números y determinar el mayor

Supongamos que tenemos dos variables, “a” y “b”, que representan dos números enteros, y queremos determinar cuál de los dos es mayor. Podríamos escribir el código de la siguiente manera:

let a = 5;
let b = 8;
let mayor;

if (a > b) {
    mayor = a;
} else {
    mayor = b;
}

Con el condicional ternario, podemos reducir este código a una sola línea:

let a = 5;
let b = 8;
let mayor = (a > b) ? a : b;

Nuevamente, el condicional ternario nos permite realizar la evaluación y asignación en una sola línea, simplificando nuestro código y haciéndolo más fácil de leer.

Asignación de valores

El operador ternario es útil cuando se necesita asignar un valor basado en una condición simple en una sola línea de código.

let edad = 20;
let categoria = (edad >= 18) ? "adulto" : "menor de edad";

console.log(`La persona es ${categoria}`);

Este ejemplo asigna la cadena “adulto” a la variable categoria si la edad es mayor o igual a 18; de lo contrario, asigna la cadena “menor de edad”.

Valor de retorno en funciones

El operador ternario también se puede utilizar para determinar el valor de retorno de una función basado en una condición.

function obtenerSaludo(esFormal) {
    return esFormal ? "Buenos días, señor(a)" : "Hola";
}

Esta función obtenerSaludo devuelve “Buenos días, señor(a)” si el parámetro esFormal es verdadero; de lo contrario, devuelve “Hola”.

Manejo de valores por defecto

El operador ternario también puede ser útil para asignar valores por defecto en función de una condición.

let nombre = usuario ? usuario.nombre : "Invitado";

En este ejemplo, si la variable usuario está definida, se asigna su propiedad nombre a la variable nombre. Si usuario no está definido, se asigna la cadena “Invitado” como valor por defecto.

Estos ejemplos tienen el propósito de mostrar cómo utilizar el operador ternario. No significa que sea la mejor forma de resolver el problema que abordan.