Co

Condicionais em JavaScript

42 exercícios

Sobre Condicionais

Sintaxe geral

Uma forma comum de executar lógica condicionalmente em JavaScript é a condicional. É constituída pela palavra-chave if, por uma condição entre parênteses e por um bloco de código entre chavetas. O bloco de código só é executado se a condição for avaliada como true.

if (condition) {
  // code that is executed if "condition" is true
}

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
}

Condicionais aninhadas

Para aninhar outra condição na instrução else, podes usar else if. Repara que não existe a palavra-chave elseif em JavaScript. Em vez disso, escreve else seguido de outra condicional.

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
}

Em teoria, podes aninhar tantas condições adicionais quantas quiseres. Na prática, nesses casos usarias antes uma instrução switch.

if (condition1) {
  // ...
} else if (condition2) {
  // ...
} else if (condition3) {
  // ...
} else if (condition4) {
  // ...
} else {
  // ...
}

Condição

Ao construir condições complexas, consulta a tabela de precedência de operadores para evitares 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, considera usar variáveis adicionais para tornar o código mais legível.

const isPositive = num >= 0;
const isSmall = num < 1;
if (isPositive && isSmall) {
  // ...
}

Em JavaScript, a condição não tem de ser do tipo boolean. Se for fornecido outro tipo que não boolean num contexto booleano, como a condicional, o JavaScript converte implicitamente o valor para boolean. Consulta o conceito de conversão de tipos para saberes que valores são truthy e falsy, respetivamente.

const num = 4;
if (num) {
  // this code block will be executed because 4 is truthy
}

Notações abreviadas

Se quiseres executar apenas uma instrução no bloco de código do if ou do else, é possível omitir as chavetas em JavaScript.

if (condition) doSomething();

// or

if (condition)
  doSomething();

Isto é usado, por vezes, quando se verifica uma condição de erro, por exemplo. Em geral, não é recomendado, porque é fácil esquecermo-nos de voltar a acrescentar as chavetas quando adicionamos uma segunda instrução que deve 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, isto reduz o aninhamento e torna o código mais legível e mais fácil de seguir.

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.';
}
Editar via GitHub A ligação abre numa nova janela ou separador

Aprende Condicionais