Uma forma comum de executar lógica condicionalmente em JavaScript é a condicional if.
Ela consiste na palavra-chave if, uma condição entre parênteses redondos e um bloco de código entre chaves.
O bloco de código só será executado se a condição for avaliada como true.
if (condition) {
// code that is executed if "condition" is true
}
Ela pode ser usada sozinha ou combinada com a palavra-chave else.
if (condition) {
// code that is executed if "condition" is true
} else {
// code that is executed otherwise
}
Para aninhar outra condição na cláusula else, você pode usar else if.
Repare que não existe a palavra-chave elseif em JavaScript.
Em vez disso, escreva else seguido de outra condicional if.
if (condition1) {
// code that is executed if "condition1" is true
} else if (condition2) {
// code that is executed if "condition2" is true
// but "condition1" was false
} else {
// code that is executed otherwise
}
Na teoria, você pode aninhar quantas condições adicionais quiser.
Na prática, nesses casos você usaria uma instrução switch em vez disso.
if (condition1) {
// ...
} else if (condition2) {
// ...
} else if (condition3) {
// ...
} else if (condition4) {
// ...
} else {
// ...
}
Ao construir condições complexas, consulte a tabela de precedência de operadores para evitar parênteses desnecessários.
if (num >= 0 && num < 1) {
// ...
}
// The inner brackets are obsolete because relational operators
// have higher precedence than logical operators.
<!-- prettier-ignore-start -->
if ((num >= 0) && (num < 1)) {
// ...
}
<!-- prettier-ignore-end -->
Além disso, considere usar variáveis adicionais para deixar o código mais legível.
const isPositive = num >= 0;
const isSmall = num < 1;
if (isPositive && isSmall) {
// ...
}
Em JavaScript, a condição não precisa ser do tipo boolean. Se qualquer tipo diferente de boolean for fornecido num contexto booleano como a condicional, o JavaScript converte o valor implicitamente para boolean. Consulte o conceito de conversão de tipos para saber quais valores são truthy e falsy, respectivamente.
const num = 4;
if (num) {
// this code block will be executed because 4 is truthy
}
Se você quiser executar apenas uma instrução no bloco de código do if ou do else, é possível, em JavaScript, omitir as chaves.
if (condition) doSomething();
// or
if (condition)
doSomething();
Às vezes isso é usado, por exemplo, ao verificar uma condição de erro. Em geral, não é recomendado, porque é fácil esquecer de colocar as chaves de volta ao adicionar uma segunda instrução que deveria depender da mesma condição.
Ao escrever funções, é um padrão comum omitir o bloco else e usar um return antecipado no bloco if.
Em muitos casos, isso reduz o aninhamento e deixa o código mais legível e mais fácil de acompanhar.
function checkNumber(num) {
let message = '';
if (num === 0) {
message = 'You passed 0, please provide another number.';
} else {
message = 'Thanks for passing such a nice number.';
}
return message;
}
// Can also be written as ...
function checkNumber(num) {
if (num === 0) {
return 'You passed 0, please provide another number.';
}
return 'Thanks for passing such a nice number.';
}