El operador ternario condicional en JavaScript asigna un valor a una variable en función de alguna condición y es el único operador de JavaScript que toma tres operandos.
El operador ternario es un sustituto de un Si declaración en la que tanto el Si y más Las cláusulas asignan diferentes valores al mismo campo, así:
si (condición)
resultado = 'algo';
más
resultado = 'somethingelse';
El operador ternario acorta esta declaración if / else en una sola declaración:
resultado = (condición)? 'algo': 'somethingelse';
Si condición es cierto, el operador ternario devuelve el valor de la primera expresión; de lo contrario, devuelve el valor de la segunda expresión. Consideremos sus partes:
- Primero, cree la variable a la que desea asignar un valor, en este caso, resultado. La variable resultado tendrá un valor diferente según la condición.
- Tenga en cuenta que en el lado derecho (es decir, el operador mismo), el condición es primero.
- los condición siempre va seguido de un signo de interrogación (?), que básicamente se puede leer como "¿era eso cierto?"
- Los dos resultados posibles son los últimos, separados por dos puntos (:).
Este uso de la operador ternario está disponible solo cuando el original Si La declaración sigue el formato que se muestra arriba, pero este es un escenario bastante común, y el uso del operador ternario puede ser mucho más eficiente.
Ejemplo de operador ternario
Veamos un ejemplo real.
Quizás necesite determinar qué niños tienen la edad adecuada para asistir al jardín de infantes. Es posible que tenga una declaración condicional como esta:
var edad = 7;
var kindergarten_eligible;
si (edad> 5) {
kindergarten_eligible = "Suficientemente viejo";
}
más {
kindergarten_eligible = "Demasiado joven";
}
Usando el operador ternario, puede acortar la expresión a:
var kindergarten_eligible = (edad <5)? "Demasiado joven": "Suficientemente mayor";
Este ejemplo, por supuesto, devolvería "Suficientemente viejo".
Evaluaciones Múltiples
También puede incluir múltiples evaluaciones:
var age = 7, var socially_ready = true;
var kindergarten_eligible = (edad <5)? "Demasiado joven": socialmente_ready
"Lo suficientemente mayor pero aún no está listo" "Lo suficientemente viejo y socialmente maduro"
console.log (kindergarten_eligible); // registra "Viejo y socialmente maduro"
Operaciones múltiples
El operador ternario también permite la inclusión de múltiples operaciones para cada expresión, separadas por una coma:
var age = 7, socially_ready = true;
edad> 5? (
alerta ("Tienes edad suficiente"),
location.assign ("continue.html")
): (
socially_ready = false,
alerta ("Lo siento, pero aún no estás listo")
);
Implicaciones del operador ternario
Los operadores ternarios evitan de otro modo detallado código, por un lado, parecen deseables. Por otro lado, pueden comprometer la legibilidad, obviamente, "SI MÁS" se entiende más fácilmente que un "?" Críptico.
Cuando utilice un operador ternario, o cualquier abreviatura, considere quién leerá su código. Si los desarrolladores menos experimentados pueden necesitar comprender la lógica de su programa, tal vez debería evitarse el uso del operador ternario. Esto es especialmente cierto si su condición y evaluaciones son lo suficientemente complejas que necesitaría anidar o encadenar a su operador ternario. De hecho, este tipo de operadores anidados pueden afectar no solo la legibilidad sino también la depuración.
Al igual que con cualquier decisión de programación, asegúrese de considerar el contexto y la usabilidad antes de usar un operador ternario.