11. SınıfBilişim Teknolojileri

JS Temelleri

Bilişim Teknolojileri · 11. Sınıf · JavaScript ve DOM

Konu Anlatımı

JavaScript Temelleri

JavaScript, tarayıcıda çalışan ve sayfaya davrandırma kazandıran dil bilgisidir; HTML CSS ile duran, JavaScript ile hareket eden sayfayı mümkün kılar. 9. sınıftaki değişken ve döngü bilgisinin üzerine bu konu üç ileri başlık ekler: kapsamı doğru kurulan değişkenler ve fonksiyonlar, veriyi dönüştüren dizi metodları ile bekleyen işleri (istek, zamanlayıcı) yöneten asenkron yapı. Kodun okunabilirliği burada kazanılır; çünkü fonksiyonlar ve modüller paylaşımın temelidir.

1. Değişkenler, Türler ve Fonksiyonlar

Değişken bildirimi let ve const ile yapılır: let yeniden değer alabilir, const bağlandıktan sonra değiştirilemez (dizi ve nesnenin içi güncellenebilir, referans sabit kalır). Her ikisi de blok kapsamındadır; süslü parantez içinde tanımlanan değişken dışarıda görünmez. Temel türler sayı, metin, doğru-yanlış, null, undefined ve nesne'dir; typeof ile sorulur. Ok fonksiyonu kısa sözdizimi sunar ve this bağlamını çevreleyen kapsama devreder. Aşağıdaki örnek, fonksiyonu parametre, dönüş değeri ve şablon metniyle birlikte gösterir.

const topla = (a, b) => a + b; biçimindeki tek satırlık gövdede return yazmak gerekmez; gövde süslü parantezliyse return zorunludur. Metin birleştirme yerine şablon metni kullanılır: `${ad} hoş geldin`.

2. Dizi ve Nesne Metotları

Veri kümeleri üzerinde döngü yazmak yerine metot zinciri kurulur. Bu dört metot 11. sınıf düzeyinde ezber değil, anlamıyla bilinmelidir:

MetotNe YaparDönüş Değeri
forEachHer eleman üzerinde iş yaparDönüşü yok (undefined)
mapHer elemanı bire bir dönüştürürYeni dizi, aynı uzunluk
filterKoşulu sağlayanları seçerYeni dizi, eleman sayısı azalabilir
reduceKümeyi tek değere indirgerTek değer (toplam, ortalama, nesne)

Nesnelerde alan okuması nesne.anahtar ya da köşeli parantezle olur; destructure ile alanlar tek satırda açılır, spread (...) ile dizi veya nesne kopyalanıp birleştirilir. JSON.stringify ve JSON.parse çifti, nesneyi metne çevirmede kullanılır.

3. Asenkron Programlama: Promise ve async-await

Tarayıcı tek iş parçacığında çalışır; uzun süren istek arayüzü kilitlememelidir. Bir işin sonucu hemen verilemiyorsa bir Promise döner ve bu nesnenin üç durumu vardır: bekliyor, çözüldü, reddedildi. Çözülme durumunda then, reddedilmede catch çalışır. async ile yazılan fonksiyon hep Promise döndürür, gövdede await yazılan iş bitene kadar akışı orada durdurur ve sonucu değere yazar. Hata yönetimi try-catch ile aynı yapıda kurulur: finally bloğu hata olsun ya da olmasın çalışır (yüzücüyü gizleme, yükleniyor durumunu temizleme).

Zamanlayıcılar da asenkron akışın parçasıdır: setTimeout işi kuyruğa atar, senkron kod bittikten sonra çalışır. Bu yüzden üst üste iki zamanlayıcının sırası, çağrı sırasıyla değil gecikme değeriyle belirlenir.

4. Modüller ve Hata Türleri

Uygulama büyüdükçe dosyalar bölünür: bir dosya işlevini export ile açar, kullanan dosya import ile alır. Böylece aynı işlev iki yerde kopyalanmaz, değişiklik tek noktadan yapılır. Yaygın hata türleri şunlardır: tip uyuşmazlığı kaynaklı TypeError, tanımsız değere erişimde ReferenceError ve ağ/çözümleme kaynaklı çalışma zamanı hatası. Hata yakalanırken kullanıcının anlayacağı Türkçe mesaj verilir, ham yığın izi gösterilmez.

5. Sınav Odaklı Özet

Sınavda en çok üç şey sorulur: map ve filter'ın dönüş değeri (ikisi de yeni dizi döner, forEach döndürmez), Promise durumları ve async-await'in hatayı try-catch ile yakalaması. Döngü ile metot karşılaştırmasında uzunluk azalıyorsa filter, tek sayısal sonuç aranıyorsa reduce düşünülür. const'un nesneyi kilitlediği ama içeriğini kilitlemediiği de klasik bir ayrım sorusudur.

Ne Öğreneceğiz

Değişkenler, ok fonksiyonlar, dizi metodları, modüller ve asenkron programlama temelleri. Bu konuda ögrenme çıktıları:

Ön Bilgi

Bu konuya başlamadan önce temel kavram ve ön koşulları kavramanız yardımcı olacaktır. Konunun çerçevesinde şu kavramlar dikkat ister:

Basit Örnek ve Günlük Yaşam

Günlük yaşamda ve mesleki bağlamda bir uygulama:

Soru: Bir puan tablosunda iki puanın toplamını ve yüzde dönüşümünü veren işlevler yazılacaktır. Sözdizimi nasıl kurulur?

  1. Adım 1: Toplama işlevi tek satırda ok fonksiyonu olarak yazılır: (a, b) => a + b.
  2. Adım 2: Yüzde işlevine varsayılan parametre eklenir: (puan, toplam = 100) => puan / toplam * 100.
  3. Adım 3: Değerler const ile bağlanır, sonuç şablon metniyle yazdırılır.
  4. Adım 4: Eksik ikinci argümanın 100 varsayımıyla çalıştığı denenir.

Sonuç/cevap: İşlevler çağrıldığında toplam ve yüzde hesaplanır; parametre verilmezse toplam 100 kabul edilir.

Adım Adım Çözülmüş Örnek

Örnek 1: Ok Fonksiyonu ve Varsayılan Parametre konusunun adımları:

  1. Adım 1: Toplama işlevi tek satırda ok fonksiyonu olarak yazılır: (a, b) => a + b.
  2. Adım 2: Yüzde işlevine varsayılan parametre eklenir: (puan, toplam = 100) => puan / toplam * 100.
  3. Adım 3: Değerler const ile bağlanır, sonuç şablon metniyle yazdırılır.
  4. Adım 4: Eksik ikinci argümanın 100 varsayımıyla çalıştığı denenir.

Karşılaştırma Tablosu

KavramAçıklama
const bağlamadan sonra atama hatası vericonst bağlamadan sonra atama hatası verir; dizi ve nesnenin içi yine güncellenebilir.
forEach bir değer döndürmez; sonuç gerekforEach bir değer döndürmez; sonuç gerekiyorsa map veya reduce kullanılır.
await yalnız async fonksiyonun içinde yaawait yalnız async fonksiyonun içinde yazılabilir.
Reddedilen Promise yakalanmazsa kullanıcReddedilen Promise yakalanmazsa kullanıcıya yansımayan sessiz hata oluşur.
Kodun tekrarını önleyen birim export-impKodun tekrarını önleyen birim export-import ile modüllere bölünür.
Kullanıcıya gösterilen hata metni güvenlKullanıcıya gösterilen hata metni güvenli ve açıklayıcı olmalıdır.

Sık Yapılan Hatalar

forEach ile sonuç beklemek: Bu metot undefined döndürür; diziye değer atamak yerine map veya reduce kullanılmalıdır.

await satırını normal fonksiyonda yazmak: await yalnızca async fonksiyon içinde geçerlidir, aksi hâlde sözdizimi hatası oluşur.

Reddedilen Promise'i yakalamamak: catch yoksa hata konsola düşer, kullanıcı hata mesajını hiç görmez.

const ile nesne içeriğini de sanmak: const referansı bağlar; nesne alanlarını değiştirmek hataya yol açmaz.

Hata durumunda sayfayı dondurmak: Kullanıcıya ham hata yığını göstermek yerine açıklayıcı mesaj verilir.

Kendini Dene

Soru: Yönerge: Bir sınav notu dizisini işlemek için kısa bir JavaScript bloğu yaz. Diziden 60 ve üzeri notları filter ile seç, seçilen notların ortalamasını reduce ile hesapla, sonucu şablon metniyle ekrana yaz ve tüm işlemleri try-catch içinde koruyarak hatayı üç bölümlü (ne oldu, neden, ne yapılmalı) bir mesajla göster. Ardından filter, map ve reduce'nin ne zaman kullanılacağını birer cümleyle karşılaştır.

Örnek cevap: Puanlama anahtarı: filter ile 60 ve üzeri elemanların seçildiğinin yazılması 3 puan; reduce ile ortalamanın toplam / uzunluk biçiminde hesaplandığının yazılması 4 puan; şablon metninde dolar aksanı ile ifade gömme kullanımının 3 puan; try bloğu ile catch ve finally kullanımının yazılması 3 puan; hata mesajının üç bölümünün yazılması 3 puan; filter-map-reduce karşılaştırmasının (koşul, dönüşüm, tek değer) 4 puan. Toplam 20 puan. Model cevap: filter geçerli notları, reduce ortalamayı üretir, şablon metni sonucu yazar; hata yakalanıp anlaşılır mesajla kullanıcıya bildirilir.

JS Temelleri — Sık Sorulan Sorular

JS Temelleri nedir?

JavaScript, tarayıcıda çalışan ve sayfaya davrandırma kazandıran dil bilgisidir; HTML CSS ile duran, JavaScript ile hareket eden sayfayı mümkün kılar. 9. sınıftaki değişken ve döngü bilgisinin üzerine bu konu üç ileri başlık ekler: kapsamı doğru kurulan değişkenler ve fonksiyonlar, veriyi dönüştüren dizi metodları ile…

JS Temelleri konusunda ne öğrenilir?

const bağlamadan sonra atama hatası verir; dizi ve nesnenin içi yine güncellenebilir.

JS Temelleri konusunda sık yapılan hatalar nelerdir?

forEach ile sonuç beklemek: Bu metot undefined döndürür; diziye değer atamak yerine map veya reduce kullanılmalıdır. await satırını normal fonksiyonda yazmak: await yalnızca async fonksiyon içinde geçerlidir, aksi hâlde sözdizimi hatası oluşur.

JS Temelleri için hangi formüller ve kurallar kullanılır?

let değişir, const bağlanır; ikisi de blok kapsamındadır. · map → yeni dizi (aynı uzunluk), filter → koşulu geçenler, reduce → tek değer. · Promise durumları: bekliyor, çözüldü, reddedildi. · async fonksiyon hep Promise döndürür; await sonucu değere yazar.

JS Temelleri kazanımları nelerdir?

let ve const ile blok kapsamını, temel türleri ve ok fonksiyonlarını açıklar. Dizi ve nesne metodlarıyla veri dönüştürme işlemleri (map, filter, reduce) uygular. Promise ve async-await ile asenkron akışı ve hata yönetimini kurar.

JS Temelleri Kazanımları

Örnek Sorular ve Çözümleri

Örnek Soru 1 kolay

Aşağıdakilerden hangisi blok kapsamına sahip değişken bildirimidir?

  1. A) let.
  2. B) const olmada
  3. C) var.
  4. D) function.
Cevabı göster

Doğru cevap: A) let.

let... let. - let ile const blok kapsamındadır; var ise fonksiyon kapsamlıdır ve hoisting ile üst scope'a taşınır.

Örnek Soru 2 orta

[1, 2, 3, 4] dizisinin çift elemanları filter ile seçilip map ile karelerine çevrilirse sonuç nedir?

  1. A) [1, 4, 9, 16]
  2. B) [2, 4]
  3. C) [1, 9]
  4. D) [4, 16]
Cevabı göster

Doğru cevap: D) [4, 16]

Önce filter 2 ve 4'ü seçer, ardından map karelerini alır: 2² = 4 ve 4² = 16, yani [4, 16] oluşur.

Örnek Soru 3 zor

try-catch-finally yapısında finally bloğu ne zaman çalışır?

  1. A) Yalnız hata olmadığında
  2. B) Yalnız hata olduğunda
  3. C) Hata olsa da olmasa da her koşulda
  4. D) Yalnız async kodda
Cevabı göster

Doğru cevap: C) Hata olsa da olmasa da her koşulda

finally temizlik işleri içindir; yükleme göstergesi kapatma, kapatma işlemi hata durumunda da yapılmalıdır.

Sıradaki adım

Konu anlatımları hesapsız okunur. Quiz, slayt ve deneme için hesap gerekir.

DersTeders ile devam et

Bilişim Teknolojileri için çalışma yolu

  1. OkuKonu anlatımını bu sayfada bitir.
  2. Soru çözÖrnekleri çöz, cevabı açıklamayla karşılaştır.
  3. Quiz ile pekiştirHesapla kendini ölç.

Slaytla adım adım öğren · Tüm dersler · Ana sayfa

Hesap açTüm dersleri keşfet

Konu anlatımları hesapsız okunur; quiz, slayt ve deneme için hesap gerekir.

Bu sayfa JS Temelleri konusunun anlatımını, kazanımlarını ve örnek sorularını içerir. Konuyla ilgili tüm sorular için testi çöz, diğer konular için DersTeders ana sayfasına geçebilirsin.

Bu konunun öğretmen materyallerini (ders planı, çalışma kâğıdı, çözümlü soru bankası, rubrik) yazdırabilirsin: Yazıcı çıktısı modülünü aç