O operador ternário JavaScript como um atalho para instruções If / Else

O operador ternário condicional em Javascript atribui um valor a uma variável com base em alguma condição e é o único operador JavaScript que utiliza três operandos.

O operador ternário é um substituto para um E se declaração em que tanto o E se e outro As cláusulas atribuem valores diferentes ao mesmo campo, da seguinte forma:

se (condição)
resultado = 'alguma coisa';
outro
resultado = 'algo mais';

O operador ternário reduz essa instrução if / else em uma única instrução:

resultado = (condição)? 'alguma coisa': 'outra coisa'; 

E se condição é verdade, o operador ternário retorna o valor da primeira expressão; caso contrário, ele retornará o valor da segunda expressão. Vamos considerar suas partes:

  • Primeiro, crie a variável à qual você deseja atribuir um valor, neste caso, resultado. A variável resultado terá um valor diferente dependendo da condição.
  • Observe que, no lado direito (ou seja, o próprio operador), o condição é primeiro.
  • o condição é sempre seguido por um ponto de interrogação (?), que basicamente pode ser lido como "isso era verdade?"
  • instagram viewer
  • Os dois resultados possíveis vêm por último, separados por dois pontos (:).

Esse uso do operador ternário está disponível apenas quando o original E se A instrução segue o formato mostrado acima - mas esse é um cenário bastante comum, e o uso do operador ternário pode ser muito mais eficiente.

Exemplo de operador ternário

Vejamos um exemplo real.

Talvez você precise determinar quais crianças têm a idade certa para frequentar o jardim de infância. Você pode ter uma declaração condicional como esta:

var idade = 7;
var kindergarten_eligible;
if (idade> 5) {
kindergarten_eligible = "Idade suficiente";
}
outro {
kindergarten_eligible = "Muito jovem";
}

Usando o operador ternário, você pode reduzir a expressão para:

var kindergarten_eligible = (idade <5)? "Muito jovem": "Velho o suficiente";

Este exemplo, é claro, retornaria "Velho o suficiente".

Várias avaliações

Você também pode incluir várias avaliações:

var age = 7, var social_ready = true;
var kindergarten_eligible = (idade <5)? "Muito jovem": socialmente_ready
"Velho o suficiente, mas ainda não pronto" "Velho e socialmente maduro o suficiente"
console.log (kindergarten_eligible); // logs "Antigos e socialmente maduros o suficiente"

Operações Múltiplas

O operador ternário também permite a inclusão de várias operações para cada expressão, separadas por vírgula:

var idade = 7, já socialmente = verdadeiro;
idade> 5? (
alerta ("Você tem idade suficiente."),
location.assign ("continue.html")
): (
socially_ready = false,
alert ("Desculpe, mas você ainda não está pronto.")
);

Implicações do operador ternário

Os operadores ternários evitam verbos de outra forma código, por um lado, eles parecem desejáveis. Por outro lado, eles podem comprometer a legibilidade - obviamente, "SE ELSE" é mais facilmente entendido do que um "?" Enigmático.

Ao usar um operador ternário - ou qualquer abreviação - considere quem estará lendo seu código. Se os desenvolvedores menos experientes precisarem entender a lógica do seu programa, talvez o uso do operador ternário deva ser evitado. Isso é especialmente verdadeiro se sua condição e avaliações forem complexas o suficiente para que você precise aninhar ou encadear seu operador ternário. De fato, esses tipos de operadores aninhados podem afetar não apenas a legibilidade, mas também a depuração.

Como em qualquer decisão de programação, considere o contexto e a usabilidade antes de usar um operador ternário.