0Pricing
JavaScript Academy · Lektion

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
Defensive Programmierung und Eingabeprüfungen — Illustration 1

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"));
Defensive Programmierung und Eingabeprüfungen — Illustration 2

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);
Defensive Programmierung und Eingabeprüfungen — Illustration 3

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));
Defensive Programmierung und Eingabeprüfungen — Illustration 4

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));
Defensive Programmierung und Eingabeprüfungen — Illustration 5

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 }));
Defensive Programmierung und Eingabeprüfungen — Illustration 6

Quiz zu defensiven Prüfungen

Schnelltest: Defensive Behandlung von Eingaben.

Defensive Programmierung und Eingabeprüfungen — Illustration 7

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.

Defensive Programmierung und Eingabeprüfungen — Illustration 8

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

  1. try/catch/finally, throw und eigene Fehler
  2. Defensive Programmierung und Eingabeprüfungen
← Zurück zu JavaScript Academy