Defensiv programmering og input-sjekker
Skriv små input-sjekker, bruk guard clauses, trygg parsing, standardverdier og enkel objektvalidering for å forhindre feil tidlig.
Defensiv programmering og input-sjekker er en gratis leksjon i JavaScript Academy på CoddyKit. Dette er leksjon 2 av 2. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i JavaScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i JavaScript Academy inneholder totalt 2 leksjoner.
Introduksjon til defensive kontroller
Mål: Stopp ugyldige inndata tidlig, slik at feil ikke sprer seg.
- Kontroller av type og område
- Guard clauses
- Trygg parsing
- Standardverdier og enkel objektvalidering

Typehjelpere
Opprett små hjelpefunksjoner for å gjenbruke kontroller av for eksempel number og ikke-tom streng.
// 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"));

Demonstrasjon av guard clause
Kontroller inndata først, og stopp tidlig ved feil slik at hovedflyten forblir ryddig.
// 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 med reserveverdi
Valider resultatene etter parsing. Hvis parsingen mislykkes, returnerer du en liten fallback i stedet for at programmet krasjer.
// 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));

Standardverdier og områder
Bruk ?? for standardverdier ved null/undefined, og begrens deretter verdien til et trygt område.
// 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));

Kontroll av objektstruktur
Kontroller obligatoriske felt og enkle områder. Returner et lite resultatobjekt, for eksempel { 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 om defensive kontroller
Rask sjekk: Defensiv håndtering av inndata.

Oppsummering
Oppsummering: Bruk små typehjelpere, guard clauses, trygg parsing med reserveverdier, nullish-standardverdier, begrensning til gyldige områder og enkel objektvalidering for å stoppe feil tidlig.

Lær deg JavaScript med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 59
- Leksjoner
- 200
Ofte stilte spørsmål
Er leksjonen «Defensiv programmering og input-sjekker» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien JavaScript Academy, inkludert «Defensiv programmering og input-sjekker», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i JavaScript Academy inneholder totalt 2 leksjoner.
Hva lærer jeg i «Defensiv programmering og input-sjekker»?
Skriv små input-sjekker, bruk guard clauses, trygg parsing, standardverdier og enkel objektvalidering for å forhindre feil tidlig. Du øver på JavaScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med JavaScript Academy?
Ingen tidligere erfaring er nødvendig. JavaScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 2.
Hvor lang tid tar leksjonen «Defensiv programmering og input-sjekker»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne JavaScript Academy-leksjonen?
Ja. Alle JavaScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- try/catch/finally, throw og egendefinerte feil
- Defensiv programmering og input-sjekker