Desarrollo front-end, estándares web, accesibilidad y más
Por kcmr, el 14 de marzo de 2009 en Javascript
Esta es la sintaxis del operador ternario, que equivale a una estructura de control de flujo if / else:
condicion ? instrucción si se cumple : instrucción si no se cumple;
Usando un ejemplo de código real podría ser así:
hasClassName(capa, clase) ? removeClassName(capa, clase) : addClassName(capa, clase);
Que para mayor legibilidad, si las instrucciones son muy largas, se puede separar en varias líneas:
hasClassName(capa, clase)
? removeClassName(capa, clase)
: addClassName(capa, clase);
Hasta ahora, siempre que había tenido que usar varias instrucciones en una condición, había abandonado el operador ternario en favor de una estructura if / else:
if(condicion){
hazAlgo();
yHazOtraCosa();
}
else{
hazUnaCosa();
hazOtraCosaMas();
}
Mediante el operador ternario podemos incluir varias instrucciones usando funciones anónimas:
condicion
? (function(){ hazAlgo(); hazOtraCosa();})()
: (function(){ hazUnaCosa(); hazOtraCosaMas();})();
Usando un ejemplo de código real, podría ser así:
hasClassName(capa, clase)
? (function(){ removeClassName(capa, clase); enlace.title = 'Ocultar';})()
: (function(){ addClassName(capa, clase); enlace.title = 'Mostrar';})();
Campos obligatorios marcados con asterisco *