cat javascript/gestire-risposte-vuote-o-non-valide.md

Lezione 4112 min

Gestire risposte vuote o non valide

Controllare i dati ricevuti prima di usarli.

In parole semplici

Non devi fidarti automaticamente dei dati ricevuti. Prima controlli che esistano e che abbiano le informazioni che ti servono.

Questa lezione fa parte del modulo Dati, attese e richieste web. L’obiettivo del modulo è: Capire come gestire operazioni che non danno una risposta immediata.

Parole nuove

  • dato valido: dato che ha la forma che ti aspetti.
  • controllo: verifica prima di usare un valore.

Cosa impari

  • Capire il concetto senza partire da definizioni astratte.
  • Vedere un esempio piccolo che puoi copiare e modificare.
  • Collegare l’argomento al risultato del modulo: una piccola dashboard che mostra dati caricati da una fonte esterna.

Esempio da copiare

function mostraNome(utente) {
  if (!utente || !utente.name) {
    console.log("Nome non disponibile");
    return;
  }

  console.log(utente.name);
}

mostraNome({ name: "Leanne" });
mostraNome({});

Non devi memorizzare tutto subito. Prima copia l’esempio, fallo funzionare e cambia una cosa alla volta.

Esercizi

Base · facile

Scrivi mostraNome(utente) che stampa il nome se esiste, altrimenti un messaggio alternativo. Provala con { name: "Leanne" } e con {}.

Soluzione
function mostraNome(utente) {
  if (!utente || !utente.name) {
    console.log("Nome non disponibile");
    return;
  }
  console.log(utente.name);
}

Il controllo iniziale (guard clause) protegge dal caso di dato mancante o incompleto.

Intermedio · medio

Estendi il controllo a una lista: se l’array è vuoto mostra «Nessun risultato», altrimenti stampa i nomi. Prova con una lista piena e una vuota.

Sfida · difficile

Spiega perché non bisogna fidarsi dei dati ricevuti da una fonte esterna. Mostra l’uso dell’optional chaining (utente?.address?.city) e di un valore di default (?? "città sconosciuta") per leggere dati annidati senza far crashare il codice.

Controllo finale

Hai finito quando il codice non si rompe se il dato è incompleto.