Como escrever uma instrução IF inline em JavaScript?




w3 title attribute (10)

Para escrever if statement inline, o código dentro dele deve ser apenas uma instrução:

if ( a < b ) // code to be executed without curly braces;

Como posso usar uma instrução if inline em JavaScript? Existe uma declaração inline else também?

Algo assim:

var a = 2;
var b = 3;

if(a < b) {
    // do something
}

Para adicionar a isso, você também pode usar a condição inline com && and || operadores. Como isso

var a = 2;
var b = 0;

var c = (a > b || b == 0)? "do something" : "do something else";


Não é a questão essencialmente: posso escrever o seguinte?

if (foo)
  console.log(bar)
else
  console.log(foo + bar)

a resposta é sim, o acima será traduzido.

no entanto, tenha cuidado ao fazer o seguinte

if (foo)
  if (bar)
    console.log(foo)
  else 
    console.log(bar)
else 
  console.log(foobar)

Certifique-se de quebrar o código ambíguo entre chaves, pois o acima irá lançar uma exceção (e permutações semelhantes produzirão um comportamento indesejado).


Em inglês claro, a sintaxe explicou:

if(condition){
    do_something_if_condition_is_met;
}
else{
    do_something_else_if_condition_is_not_met;
}

Pode ser escrito como:

condition ? do_something_if_condition_is_met : do_something_else_if_condition_is_not_met;

Você poderia fazer assim em JavaScript:

a < b ? passed() : failed();

Existe um operador ternário, assim:

var c = (a < b) ? "a is less than b"  : "a is not less than b";

Muitas vezes preciso executar mais código por condição, usando: ( , , ) vários elementos de código podem ser executados:

var a = 2;
var b = 3;
var c = 0;

( a < b ?  ( alert('hi'), a=3, b=2, c=a*b ) : ( alert('by'), a=4, b=10, c=a/b ) );

<div id="ABLAHALAHOO">8008</div>
<div id="WABOOLAWADO">1110</div>

parseInt( $( '#ABLAHALAHOO' ).text()) > parseInt( $( '#WABOOLAWADO ).text()) ? alert( 'Eat potato' ) : alert( 'You starve' );

FYI, você pode compor operadores condicionais

var a = (truthy) ? 1 : (falsy) ? 2 : 3;

Se a sua lógica é suficientemente complexa, então você pode considerar o uso de um IIFE

var a = (function () {
  if (truthy) return 1;
  else if (falsy) return 2;
  return 3;
})();

Claro, se você planeja usar essa lógica mais de uma vez, então você pode encapsulá-la em uma função para manter as coisas legais e SEQUER.





conditional-operator