Operador condicional (ternario)

El operador condicional (ternario) es el 煤nico operador en JavaScript que tiene tres operandos. Este operador se usa con frecuencia como atajo para la instrucci贸n if.
 

Sintaxis

condici贸n ? expr1 : expr2 

Descripci贸n

Par谩metros

condici贸n
Una expresi贸n que se eval煤a como true o false.
expr1, expr2
Expresi贸n con valores de alg煤n tipo.

Si la condici贸n es true, el operador retorna el valor de la expr1; de lo contrario,  devuelve el valor de expr2. Por ejemplo, para mostrar un mensaje diferente en funci贸n del valor de la variable isMember, se puede usar esta declaraci贸n:

"La Cuota es de:  " + (isMember ? "$2.00" : "$10.00")

Tambi茅n puedes asignar variables dependiendo del resultado de la condici贸n ternaria:

var elvisLives = Math.PI > 4 ? "Sip" : "Nop";

Tambi茅n es posible realizar evaluaciones ternarias m煤ltiples (Nota: El operador condicional es asociativo):

var firstCheck = false,
    secondCheck = false,
    access = firstCheck ? "Acceso Denegado" : secondCheck ? "Acceso Denegado" : "Acceso Permitido";

console.log( access ); // muestra "Acceso Permitido"

Tambi茅n puede usar operaciones ternarias en espacio vac铆o con el prop贸sito de realizar diferentes operaciones:

var stop = false, age = 16;

age > 18 ? location.assign("continue.html") : stop = true;

Tambi茅n puede realizar m谩s de una operaci贸n por caso, separ谩ndolas con una coma:

var stop = false, age = 23;

age > 18 ? (
    alert("OK, puedes continuar."),
    location.assign("continue.html")
) : (
    stop = true,
    alert("Disculpa, eres menor de edad!")
);

Tambi茅n puede realizar m谩s de una operaci贸n durante la asignaci贸n de un valor. En este caso, el 煤ltimo valor separado por una coma del par茅ntesis ser谩 el valor asignado.

var age = 16;

var url = age > 18 ? (
    alert("OK, puedes continuar."),
    // alert devuelve "undefined", pero ser谩 ignorado porque
    // no es el 煤ltimo valor separado por comas del par茅ntesis
    "continue.html" // el valor a ser asignado si age > 18
) : (
    alert("Eres menor de edad!"),
    alert("Disculpa :-("),
    // etc. etc.
    "stop.html" // el valor a ser asignado si !(age > 18)
);

location.assign(url); // "stop.html"

Especificaciones

Compatibilidad de navegadores

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
Caracter铆stica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Soporte b谩sico (Yes) (Yes) (Yes) (Yes) (Yes)
Caracter铆stica Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Soporte b谩sico (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

V茅ase tambi茅n