Múltiplas condicionais if ... else podem ser aninhados quando necessário. Observe que não existe elseif (em uma palavra). O correto é a instrução com espaços (else if), conforme abaixo:
if (condição1)
instrução1
else if (condição2)
instrução2
else if (condição3)
instrução3
...
else
instruçãoN
Para ver seu funcionamento, abaixo está a instrução como deveria ser caso identada corretamente.
if (condição1)
instrução1
else
if (condição2)
instrução2
else
if (condição3)
...
Para executar multiplas instruções dentro de uma condição, utilize um bloco ({ ... }) . Em geral, é sempre uma boa prática utilizar instruções dentro de blocos, especialmente em códigos que envolvam condicionais if aninhadas:
if (condição) {
instrução1
} else {
instrução2
}
Não confunda os valores boolean primitivos true e false com os valores true e false do objeto Boolean. Qualquer valor que não for undefined, null, 0, NaN, ou uma string vazia (""), e qualquer objeto, incluíndo um objeto Boolean cujo valor é false, é avaliado como true quando passado por uma condicional. Por exemplo:
js
var b = new Boolean(false);
if (b) // essa condição é avaliada como true
É recomendado não utilizar atribuições simples junto de uma expressão condicional, visto que atribuições podem ser confundidas com igualdade ao olhar o código. Por exemplo, não use o código abaixo:
js
if (x = y) {
/* faça a coisa certa */
}
Caso você precise utilizar uma atribuição em uma expressão condicional, uma prática comum é inserir parênteses adicionais em volta da atribuição. Por exemplo:
js
if ((x = y)) {
/* faça a coisa certa */
}