Programmazione difensiva e controlli degli input
Scrivi piccoli controlli degli input, usi clausole di guardia, parsing sicuro, valori predefiniti e una semplice validazione degli oggetti per prevenire subito gli errori.
Programmazione difensiva e controlli degli input è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 2 di 2. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento JavaScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso JavaScript Academy include 2 lezioni in totale.
Introduzione ai controlli difensivi
Obiettivo: Bloccare subito gli input non validi, così gli errori non si propagano.
- Controlli di tipo e intervallo
- Clausole di guardia
- Parsing sicuro
- Valori predefiniti e semplice validazione degli oggetti

Helper per i tipi
Crei piccoli helper per riutilizzare controlli come number e stringa non vuota.
// Tiny type helpers
function isNumber(n) {
return typeof n === "number" && Number.isFinite(n);
}
function isNonEmptyString(s) {
return typeof s === "string" && s.trim().length > 0;
}
console.log("isNumber(3):", isNumber(3));
console.log("isNumber(NaN):", isNumber(NaN));
console.log("isNonEmptyString(\"\"):", isNonEmptyString(""));
console.log("isNonEmptyString(\"hi\"):", isNonEmptyString("hi"));

Dimostrazione di una clausola di guardia
Controlli prima gli input e interrompa subito l'esecuzione in caso di errore, così il percorso principale rimane pulito.
// Guard clauses: return early if invalid
function buy(quantity) {
if (!isNumber(quantity)) {
console.log("Quantity must be a number");
return;
}
if (quantity <= 0) {
console.log("Quantity must be > 0");
return;
}
console.log("Buying", quantity, "items");
}
buy(3);
buy("3");
buy(0);

Parsing con fallback
Convalidi i risultati del parsing. Se il parsing fallisce, restituisca un piccolo fallback invece di arrestare il programma.
// Parse safely and use sensible defaults
function toInt(str, fallback = 0) {
const n = parseInt(str, 10);
if (!Number.isFinite(n)) {
return fallback;
}
return n;
}
console.log("toInt(\"42\"):", toInt("42"));
console.log("toInt(\"7px\", -1):", toInt("7px", -1));
console.log("toInt(\"abc\", 0):", toInt("abc", 0));

Valori predefiniti e intervalli
Utilizzi ?? per i valori predefiniti di null/undefined, poi limiti il valore a un intervallo sicuro.
// Defaults with ?? and simple range checks
function clampPercent(value) {
// Use 0 as default when value is null or undefined
const v = (value ?? 0);
if (!isNumber(v)) {
return 0;
}
// Clamp into 0..100
const clamped = Math.min(100, Math.max(0, v));
return clamped;
}
console.log(clampPercent(undefined));
console.log(clampPercent(120));
console.log(clampPercent(-5));
console.log(clampPercent(55));

Controllo della struttura dell'oggetto
Verifichi i campi obbligatori e gli intervalli semplici; restituisca un piccolo oggetto risultato come { ok, reason }.
// Simple object validation
function validateUser(u) {
if (u == null || typeof u !== "object") {
return { ok: false, reason: "User must be an object" };
}
if (!isNonEmptyString(u.name)) {
return { ok: false, reason: "name required" };
}
if (!isNumber(u.age) || u.age < 0) {
return { ok: false, reason: "age must be a number >= 0" };
}
return { ok: true };
}
console.log("good:", validateUser({ name: "Ayla", age: 21 }));
console.log("bad:", validateUser({ name: "", age: -1 }));

Quiz sui controlli difensivi
Controllo rapido: gestione difensiva degli input.

Riepilogo
Riepilogo: Utilizzi piccoli helper per i tipi, clausole di guardia, parsing sicuro con fallback, valori predefiniti nullish, limiti di intervallo e una semplice validazione degli oggetti per bloccare gli errori sul nascere.

Domande Frequenti
La lezione «Programmazione difensiva e controlli degli input» è gratuita?
Sì — il testo completo di «Programmazione difensiva e controlli degli input» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso JavaScript Academy, passa a CoddyKit PRO. Il corso JavaScript Academy include 2 lezioni in totale.
Cosa imparerò in «Programmazione difensiva e controlli degli input»?
Scrivi piccoli controlli degli input, usi clausole di guardia, parsing sicuro, valori predefiniti e una semplice validazione degli oggetti per prevenire subito gli errori. Eserciti JavaScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare JavaScript Academy?
Non è richiesta alcuna esperienza precedente. JavaScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 2.
Quanto tempo richiede la lezione «Programmazione difensiva e controlli degli input»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione JavaScript Academy?
Sì. Ogni lezione JavaScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- try/catch/finally, throw, errori personalizzati
- Programmazione difensiva e controlli degli input