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
Especificaci贸n | Estado | Comentario |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) La definici贸n de 'Conditional Operator' en esta especificaci贸n. |
Standard | |
ECMAScript 5.1 (ECMA-262) La definici贸n de 'The conditional operator' en esta especificaci贸n. |
Standard | |
ECMAScript 1st Edition (ECMA-262) La definici贸n de 'The conditional operator' en esta especificaci贸n. |
Standard | Definici贸n inicial implementada en JavaScript 1.0. |
Compatibilidad de navegadores
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) |