JavaScript dilinin derinlikleri
Prototipler, this bağlamı, kapanışlar, yineleyiciler, üreteçler ve Proxy gibi dilin iç işleyişini deneylerle kavrar, şaşırtıcı davranışların nedenini açıklayabilirsin.
Seviye 301 · 18 ders · 15 pratik lab
Dersler
Değerler ve türler
- İlkel değerler ve başvurular
- Tür dönüşümü kuralları
- Sayılar, kayan nokta ve BigInt
- Eşitlik algoritmaları: ==, === ve Object.is
- Kısa görev: tür dönüşümü bulmacası
Nesneler ve fonksiyonlar
- Prototip zinciri
- this bağlamı: dört kural
- Kapanışlar ve bellek
- Sınıflar, özel alanlar ve statik bloklar
- Özellik tanımlayıcıları ve dondurulmuş nesneler
- Kısa görev: prototiplerle küçük bir model katmanı
İleri yapılar
- Yineleme protokolü
- Üreteçler ve tembel diziler
- Semboller ve bilinen semboller
- Proxy ve Reflect
- Map, Set, WeakMap ve WeakRef
- Değişmezlik ve structuredClone
- Bitirme görevi: gözlemlenebilir bir durum deposu
Pratik lablar
- Kayan nokta hatalı faturayı düzelt: 0.1 + 0.2 sorunu yüzünden kuruş kaçıran fatura hesabını tam sayı kuruşla yeniden yaz.
- Sayıları bozan sıralamayı düzelt: [10, 9, 100].sort() gibi yanlış sıralanan fiyat listesini karşılaştırıcıyla düzelt ve nedenini zorlama kurallarıyla açıkla.
- Büyük kimlikleri BigInt ile koru: JSON'dan gelen 19 haneli sipariş numaraları yuvarlanıyor; kaybı göster ve BigInt ya da metinle güvenle taşı.
- Kaybolan this'i düzelt: Zamanlayıcıya verilen bir yöntemde this kaybolduğu için çalışmayan sayacı bind veya ok fonksiyonuyla düzelt.
- Yöntemi prototip zincirinde izle: Bir nesnenin her yöntemini hangi prototipten aldığını konsolda izleyip zincirin çizimini çıkar.
- Kopyalanan yöntemleri prototipe taşı: Bin araç nesnesinin her birine kopyalanan yöntemleri prototipe taşıyıp bellek farkını ölç.
- Bakiyeyi özel alanla koru: Bir hesap sınıfındaki bakiyenin dışarıdan değiştirilmesini #özel alan ve yöntemlerle engelle.
- Uygulama ayarlarını derin dondur: Ayar nesnesini derin dondurup çalışma sırasında değiştirilmeye çalışılan alanları yakala.
- Salt okunur hesaplanan özellik tanımla: defineProperty ile numaralandırılmayan, yazılamayan ve getter ile hesaplanan bir "total" özelliği ekle.
- Çalma listesine for...of desteği ver: Bir çalma listesi nesnesine Symbol.iterator ekleyerek for...of ile gezilebilir yap.
- Fatura numarası üreticisi yaz: Generator ile sırayla fatura numarası üreten ve istenince sıfırlanabilen bir üretici yaz.
- Proxy ile alan doğrulaması ekle: Bir kullanıcı nesnesine yanlış türde değer atanınca hata fırlatan ve her değişikliği kaydeden bir Proxy yaz.
- Benzersiz etiketleri Set ile topla: Blog yazılarının etiketlerini tekrarsız toplayıp alfabetik sırala.
- Önbelleği WeakMap ile sızıntısız yap: İstek nesnelerine bağlı bir önbellek işi biten nesneleri bellekte tutuyor; WeakMap'e geçirip farkı göster.
- Derin kopya tuzaklarını yakala: Tarih, Map ve döngüsel referans içeren bir durumu JSON yerine structuredClone ile kopyala ve farkları kanıtla.
Kurs hakkında
Prototipler, this bağlamı, kapanışlar, yineleyiciler, üreteçler ve Proxy gibi dilin iç işleyişini deneylerle kavrar, şaşırtıcı davranışların nedenini açıklayabilirsin.
Ne öğreneceksin
- Değerler ve türler
- Nesneler ve fonksiyonlar
- İleri yapılar
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.