Co

Condizionali in JavaScript

42 esercizi

Informazioni su Condizionali

Sintassi generale

Un modo comune per eseguire del codice in modo condizionale in JavaScript è l'istruzione if. È composta dalla parola chiave if, da una condizione racchiusa tra parentesi tonde e da un blocco di codice racchiuso tra parentesi graffe. Il blocco di codice viene eseguito solo se il risultato della condizione è true.

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

Può essere usata da sola oppure combinata con la parola chiave else.

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

Istruzioni if annidate

Per annidare un'altra condizione nell'istruzione else puoi usare else if. Nota che in JavaScript non esiste la parola chiave elseif. Al suo posto, scrivi else seguito da un'altra istruzione 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
}

In teoria, puoi annidare tutte le condizioni aggiuntive che vuoi. Nella pratica, in questi casi useresti invece un'istruzione switch.

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

La condizione

Quando costruisci condizioni complesse, fai riferimento alla tabella di precedenza degli operatori per evitare parentesi inutili.

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 -->

Inoltre, valuta l'idea di usare variabili aggiuntive per rendere il codice più leggibile.

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

In JavaScript, la condizione non deve essere per forza di tipo booleano. Se in un contesto booleano, come l'istruzione if, viene fornito un valore di un tipo diverso da booleano, JavaScript convertirà implicitamente il valore in booleano. Fai riferimento al concetto di conversione di tipo per sapere quali valori sono truthy e quali falsy.

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

Notazioni abbreviate

Se vuoi eseguire una sola istruzione nel blocco di codice di if o else, in JavaScript puoi omettere le parentesi graffe.

if (condition) doSomething();

// or

if (condition)
  doSomething();

A volte lo si usa, per esempio, quando si controlla una condizione di errore. In generale, però, non è consigliato: è facile dimenticare di rimettere le parentesi quando si aggiunge una seconda istruzione che dovrebbe dipendere dalla stessa condizione.

Quando scrivi funzioni, è uno schema comune omettere il blocco else e usare invece un return anticipato nel blocco if. In molti casi, questo riduce l'annidamento e rende il codice più leggibile e più facile da seguire.

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.';
}
Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Condizionali