Operador condicional ternario (?:)
Devuelve una de dos expresiones, dependiendo de una condición.
test ? expression1 : expression2
Argumentos
test
Cualquier expresión de tipo Boolean.expression1
Expresión devuelta si el argumento test es true. Puede ser una expresión de coma.expression2
Expresión devuelta si el argumento test es false. Puede ser una expresión de coma.
Comentarios
El operador ?: se puede utilizar como forma abreviada de una instrucción if...else. Se utiliza normalmente como parte de una expresión mayor en la que una instrucción if...else no sería práctica. Por ejemplo:
var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");
El ejemplo crea una cadena que contiene "Good evening" si es más tarde de las 6 p.m. El código equivalente que utiliza una instrucción if...else tendría el siguiente aspecto:
var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
greeting += " evening.";
else
greeting += " day.";