Savunmacı Programlama ve Girdi Denetimleri
Küçük girdi denetimleri yazın; koruma koşulları, güvenli ayrıştırma, varsayılanlar ve basit nesne doğrulamasıyla hataları erkenden önleyin.
Savunmacı Programlama ve Girdi Denetimleri, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 2 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 2 dersten oluşur.
Savunmacı kontrollere giriş
Amaç: Hataların yayılmasını önlemek için hatalı girişleri erkenden durdurun.
- Tür ve aralık kontrolleri
- Koruma koşulları
- Güvenli ayrıştırma
- Varsayılanlar ve basit nesne doğrulaması

Tür yardımcıları
number ve boş olmayan metin gibi kontrolleri yeniden kullanmak için küçük yardımcılar oluşturun.
// 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"));

Koruma koşulu gösterimi
Önce girişleri kontrol edin; ana akışın temiz kalması için hatalarda erkenden durun.
// 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);

Yedek değerle ayrıştırma
Ayrıştırılan sonuçları doğrulayın. Ayrıştırma başarısız olursa çökmek yerine küçük bir yedek değer döndürün.
// 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));

Varsayılanlar ve aralıklar
Nullish değerler için varsayılanları belirtmek üzere ?? kullanın, ardından değeri güvenli bir aralığa sıkıştırın.
// 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));

Nesne biçimi kontrolü
Gerekli alanları ve basit aralıkları kontrol edin; { ok, reason } gibi küçük bir sonuç nesnesi döndürün.
// 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 }));

Savunmacı kontroller sınaması
Hızlı kontrol: Savunmacı giriş yönetimi.

Özet
Özet: Hataları erkenden durdurmak için küçük tür yardımcıları, koruma koşulları, yedek değerli güvenli ayrıştırma, nullish varsayılanlar, aralık sınırlandırmaları ve basit nesne doğrulaması kullanın.

Sıkça Sorulan Sorular
“Savunmacı Programlama ve Girdi Denetimleri” dersi ücretsiz mi?
Evet — “Savunmacı Programlama ve Girdi Denetimleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 2 dersten oluşur.
“Savunmacı Programlama ve Girdi Denetimleri” dersinde ne öğreneceğim?
Küçük girdi denetimleri yazın; koruma koşulları, güvenli ayrıştırma, varsayılanlar ve basit nesne doğrulamasıyla hataları erkenden önleyin. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 2 dersinin 2. dersidir.
“Savunmacı Programlama ve Girdi Denetimleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- try/catch/finally, throw, özel hatalar
- Savunmacı Programlama ve Girdi Denetimleri