0Pricing
JavaScript Academy · Ders

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ı
Savunmacı Programlama ve Girdi Denetimleri — resim 1

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"));
Savunmacı Programlama ve Girdi Denetimleri — resim 2

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);
Savunmacı Programlama ve Girdi Denetimleri — resim 3

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));
Savunmacı Programlama ve Girdi Denetimleri — resim 4

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));
Savunmacı Programlama ve Girdi Denetimleri — resim 5

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ı Programlama ve Girdi Denetimleri — resim 6

Savunmacı kontroller sınaması

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

Savunmacı Programlama ve Girdi Denetimleri — resim 7

Ö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.

Savunmacı Programlama ve Girdi Denetimleri — resim 8

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

  1. try/catch/finally, throw, özel hatalar
  2. Savunmacı Programlama ve Girdi Denetimleri
← JavaScript Academy Sayfasına Dön