Defensive Programmierung und Eingabeprüfungen
Kleine Eingabeprüfungen schreiben, Guard Clauses, sicheres Parsen, Standardwerte und einfache Objektvalidierung verwenden, um Fehler frühzeitig zu verhindern
Defensive Programmierung und Eingabeprüfungen ist eine kostenlose JavaScript Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 2. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des JavaScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der JavaScript Academy-Kurs umfasst insgesamt 2 Lektionen.
Einführung in defensive Prüfungen
Ziel: Stoppen Sie ungültige Eingaben frühzeitig, damit sich Fehler nicht ausbreiten.
- Typ- und Bereichsprüfungen
- Guard Clauses
- Sicheres Parsen
- Standardwerte und einfache Objektvalidierung

Typ-Hilfsfunktionen
Erstellen Sie kleine Hilfsfunktionen, um Prüfungen wie number und nichtleere Zeichenkette wiederzuverwenden.
// 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"));

Guard-Clause-Demo
Prüfen Sie Eingaben zuerst und brechen Sie bei Fehlern frühzeitig ab, damit der Hauptpfad übersichtlich bleibt.
// 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);

Parsen mit Fallback
Validieren Sie geparste Ergebnisse. Wenn das Parsen fehlschlägt, geben Sie stattdessen einen kleinen Fallback zurück, anstatt das Programm abstürzen zu lassen.
// 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));

Standardwerte und Bereiche
Verwenden Sie ?? für Standardwerte bei null/undefined und begrenzen Sie den Wert anschließend auf einen sicheren Bereich.
// 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));

Prüfung der Objektstruktur
Prüfen Sie erforderliche Felder und einfache Bereiche und geben Sie ein kleines Ergebnisobjekt wie { ok, reason } zurück.
// 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 zu defensiven Prüfungen
Schnelltest: Defensive Behandlung von Eingaben.

Zusammenfassung
Zusammenfassung: Verwenden Sie kleine Typ-Hilfsfunktionen, Guard Clauses, sicheres Parsen mit Fallbacks, Standardwerte für null/undefined, Bereichsbegrenzungen und einfache Objektvalidierung, um Fehler frühzeitig zu stoppen.

Häufig gestellte Fragen
Ist die Lektion „Defensive Programmierung und Eingabeprüfungen“ kostenlos?
Ja — der vollständige Text von „Defensive Programmierung und Eingabeprüfungen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des JavaScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der JavaScript Academy-Kurs umfasst insgesamt 2 Lektionen.
Was lerne ich in „Defensive Programmierung und Eingabeprüfungen“?
Kleine Eingabeprüfungen schreiben, Guard Clauses, sicheres Parsen, Standardwerte und einfache Objektvalidierung verwenden, um Fehler frühzeitig zu verhindern Du übst JavaScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um JavaScript Academy zu starten?
Keine Vorkenntnisse erforderlich. JavaScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 2.
Wie lange dauert die Lektion „Defensive Programmierung und Eingabeprüfungen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser JavaScript Academy-Lektion Code schreiben und ausführen?
Ja. Jede JavaScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- try/catch/finally, throw und eigene Fehler
- Defensive Programmierung und Eingabeprüfungen