Editar No se trata de si el operador ternario es o no dañino . Se trata de si existe o no un consenso sobre si se debe usar o no fuera de las declaraciones de asignación. /Editar
Basado en un booleano, quiero llamar a una de dos funciones diferentes (sin valor de retorno). Escribí este bit de javascript:
(condition) ? doThis(arg) : doThat(arg)
Lo que creo que se ve más limpio que escribir una declaración if-else:
if(condition) {
doThis(arg);
}
else {
doThat(arg);
}
Mis colegas creen firmemente que las declaraciones ternarias solo deben usarse en las declaraciones de asignación. No puedo encontrar guías de estilo que analicen esto, probablemente porque lenguajes como Java y C # no permiten esto en absoluto (sus compiladores requieren operadores ternarios para devolver un valor). ¿Debería considerarse esto un mal uso de la declaración ternaria? ¿Por qué?
fuente
Respuestas:
En términos generales, el operador condicional está destinado a hacer una declaración if con un valor .
w = x ? y : z
. Por lo tanto, si lo está utilizando para efectos secundarios, es contra-intuitivo. Válido, pero contra-intuitivo; y recuerda que estás escribiendo un código para que lo lean tus compañeros de equipo.fuente
Un par de casos, que no son asignaciones, donde encuentro útiles los operadores ternarios son:
En argumentos de función: en mi opinión
es menos propenso a errores que
Cuando quieres llamar a una función u otra con argumentos idénticos: nuevamente encuentro
menos propenso a errores que
Como lo veo, la clave en cada caso es que el? la forma tiene menos repetición. La repetición abre la posibilidad de cambiar una instancia y olvidarse de cambiar la otra.
fuente