İçeriğe geç
XDD.baby Yazılım Öğrenme
Sözlük Hata rehberi 0/56

Blok 1 · Ders 2

Karşılaştırma ve karar: if / else

Programın duruma göre farklı yol seçmesini sağlıyorsun: doğru/yanlış değerleri, karşılaştırma işaretleri ve if/else.

Bu dersin sonunda

  • Altı karşılaştırma işaretiyle cevabı true ya da false olan sorular yazabilir, = ile === arasındaki farkı açıklayabilirsin
  • if ve else ile programının duruma göre farklı satırlar çalıştırmasını sağlayabilirsin
  • Bir kararı kod yazmadan önce akış şemasıyla çizebilirsin
  • Kodunu sınır değerleriyle (0, 30, 31) deneyip hatasız çalıştığı hâlde yanlış karar veren yeri yakalayabilirsin
  • SyntaxError, ReferenceError ve TypeError'ın ne zaman çıktığını, hangisinin programı hiç başlatmadığını söyleyebilirsin
  • Eksik ya da fazla parantezi hata mesajından ve VS Code'un renklerinden bulup düzeltebilirsin
Bu sayfada
  1. Soru sormak: true ve false
  2. Karşılaştırma işaretleri
  3. Üç eşittir: =, == ve ===
  4. if: koşul doğruysa çalıştır
  5. else: değilse
  6. Akış şeması: kararı önce çiz
  7. En sinsi hata: koşulda tek =
  8. Sınır değerleri: "çalışıyor" ile "doğru" aynı şey değil
  9. Hata türleri: hangisi ne zaman çıkar?
  10. Parantezleri eşleştirmek
  11. Sık hatalar
  12. Görevler
  13. Kendini sına
  14. Kayıt noktası

Şimdiye kadar yazdığın programlar her çalıştırmada aynı satırları aynı sırayla çalıştırdı. Ders 1'in dükkân görevinde altını 800 yapınca program "paran yetmiyor" diyemedi, altını eksiye düşürdü. Gerçek programlar ise sürekli karar verir: can sıfıra indiyse "öldün" yazar, mana yetiyorsa yeteneği kullanır. Bu derste programına soru sormayı ve cevaba göre yol seçmeyi öğreneceksin; dersin sonunda o dükkânı da kendin onaracaksın.

Soru sormak: true ve false

Bir karar vermeden önce bir soru sorarsın: Canım bitti mi? Altınım yetiyor mu? JavaScript de aynısını yapar. Ona iki değeri karşılaştırmasını söylersin, o da sana iki cevaptan birini verir: true (doğru, evet) ya da false (yanlış, hayır).

ders2.js
console.log(5 > 3)console.log(5 < 3)console.log(10 > 10)
Çıktı
truefalsefalse

5 > 3 "5, 3'ten büyük mü?" diye sorar; büyüktür, cevap true. 5 < 3 "5, 3'ten küçük mü?" diye sorar; değildir, cevap false. Üçüncü satıra dikkat et: 10, 10'dan büyük değildir, ona eşittir. Bu küçük ayrıntı, dersin ilerisinde sinsi bir hatanın kaynağı olacak.

true ve false, metin ve sayıdan sonra öğrendiğin üçüncü değer türüdür. Tırnaksız yazılırlar ve bu türün yalnızca bu iki değeri vardır.

Karşılaştırmanın cevabını, bir hesabın sonucu gibi değişkene de koyabilirsin:

ders2.js
let hp = 40const hayatta = hp > 0console.log(hayatta)console.log("Hayatta mı? " + hayatta)
Çıktı
trueHayatta mı? true

İkinci satırı Ders 1'deki gibi sağdan sola oku: önce hp > 0 sorusu sorulur, cevabı hayatta kutusuna konur. Kutunun içinde artık true var. Metinle + ile birleştirince ekrana true sözcüğü olarak yazılır.

const hayatta = hp > 0 cevap buraya önce bu sorulur 1. Kutuya bak hp kutusunda: 40 2. Soruyu sor 40 > 0 ? evet 3. Cevabı koy hayatta kutusunda: true
Şekil 2.1 Karşılaştırma da bir hesaptır: önce sağ taraf sorulur, cevap (true) soldaki kutuya konur.

Karşılaştırma işaretleri

JavaScript'te kullanacağın altı karşılaştırma işareti var. Hepsi bir soru sorar ve cevabı true ya da false olur. Tablodaki örneklerde hp kutusunda 30 olduğunu düşün:

İşaretSorduğu soruÖrnekSonuç
===eşit mi?hp === 30true
!==farklı mı?hp !== 30false
<küçük mü?hp < 30false
>büyük mü?hp > 30false
<=küçük ya da eşit mi?hp <= 30true
>=büyük ya da eşit mi?hp >= 30true

Tabloyu kendin doğrula:

ders2.js
let hp = 30console.log(hp === 30)console.log(hp !== 30)console.log(hp < 30)console.log(hp > 30)console.log(hp <= 30)console.log(hp >= 30)
Çıktı
truefalsefalsefalsetruetrue

< ile <= arasındaki tek fark sınırın kendisidir: hp tam 30 iken hp < 30 "hayır", hp <= 30 "evet" der.

Klavyede: < sol Shift'in hemen sağındaki tuşta, > aynı tuşta Shift ile; = Shift+0, ! Shift+1. İki ya da üç karakterli işaretlerin her karakteri ayrı bir tuştur: <= için önce <, sonra =; === için üç kez =. Bazı kod yazı tipleri bu karakterleri ekranda ≤ ya da ≥ gibi tek işarete birleştirir; yine de klavyede hep ayrı tuşlara basarsın.

İki karakterli işaretleri söylediğin sırayla yaz: "küçük ya da eşit" <=, "büyük ya da eşit" >=. Eşittir her zaman sağda durur. Ters yazarsan ya program hiç başlamaz (=<) ya da daha kötüsü, hata vermeden yanlış çalışır (=>). İkisini de Sık hatalar bölümünde göreceksin.

Metinleri karşılaştırmak

=== ve !== yalnızca sayılarla değil, metinlerle de çalışır. Metinleri harfi harfine karşılaştırırlar:

ders2.js
const sampiyon = "Ahri"console.log(sampiyon === "Ahri")console.log(sampiyon === "ahri")console.log(sampiyon !== "Lux")
Çıktı
truefalsetrue

İkinci satır false verdi: büyük-küçük harf farklıysa metinler eşit sayılmaz. "Ahri" ile "ahri" JavaScript için iki ayrı metindir, tıpkı hp ile Hp'nin iki ayrı ad olması gibi.

Üç eşittir: =, == ve ===

Ders 1'de tek = işaretinin "eşittir" değil, "sağdakini sola koy" demek olduğunu gördün. Karşılaştırmak için başka bir işaret gerekiyor: üç eşittir (===). Bir de iki eşittir (==) var. Üçü birbirine çok benzer ama işleri bambaşka:

YazılışOkunuşuNe yapar?
hp = 0"hp'ye 0 koy"Kutunun içini değiştirir. Soru sormaz.
hp === 0"hp, 0'a eşit mi?"Sorar, cevabı true ya da false. Kutuya dokunmaz.
hp == 0"hp, 0'a eşit mi?" (türe bakmadan)Gevşek karşılaştırma: türler farklıysa önce birini öbürüne çevirir. Kullanma.

Farkı kendi gözünle gör:

ders2.js
let hp = 50console.log(hp === 0)console.log(hp = 0)console.log(hp)
Çıktı
false00

İkinci satır bir soru sormadı: hp kutusuna 0 koydu ve koyduğu değeri ekrana yazdı. Üçüncü satır bunu kanıtlıyor; can gerçekten 0 oldu. Karşılaştırmak isterken tek = yazmak bu dersin en sinsi hatasıdır; birazdan if içinde neye yol açtığını göreceksin.

Neden == değil de ===?

== karşılaştırmadan önce iki tarafı birbirine benzetmeye çalışır. Örneğin bir taraf metin, öbürü sayıysa metni sayıya çevirip öyle karşılaştırır. Sonuç da şaşırtıcı olur:

ders2.js
console.log("5" == 5)console.log("5" === 5)console.log(100 === "100")
Çıktı
truefalsefalse

=== hem türe hem değere bakar. "5" bir metin, 5 bir sayı; türleri farklı olduğu için eşit değiller. Ders 1'deki 100 ile "100" da bu yüzden eşit sayılmaz.

== işaretinin neyi neye çevirdiğini ezberlemene gerek yok; metin ile sayı arasındaki dönüşümleri Ders 9'da göreceksin. Kural tek: her zaman === ve !== kullan. Aynı sebeple != yerine de !== yazılır.

if: koşul doğruysa çalıştır

Karşılaştırma bir soru soruyor; şimdi sıra cevaba göre bir şey yapmakta. if (İngilizcede "eğer") JavaScript'e şunu söyler: "Parantezin içindeki sorunun cevabı true ise süslü parantezlerin içindeki satırları çalıştır, false ise onları atla."

ders2.js dosyasını temizle ve şu programı yaz. Süslü parantezler Türkçe Q klavyede AltGr+7 ({) ve AltGr+0 (}) tuşlarındadır:

ders2.js — ogren — Visual Studio Code
ders2.js
let hp = 0if (hp <= 0) {    console.log("Öldün")}console.log("Maç sürüyor")
PROBLEMSOUTPUTDEBUG CONSOLETERMINAL
PS C:\kod\ogren> node ders2.jsÖldünMaç sürüyor
Ln 1, Col 1Spaces: 4UTF-8JavaScript

hp <= 0 sorusunun cevabı true, bu yüzden süslü parantezin içindeki satır çalıştı.

Şimdi ilk satırı let hp = 40 yap ve yeniden çalıştır:

ders2.js
let hp = 40if (hp <= 0) {    console.log("Öldün")}console.log("Maç sürüyor")
Çıktı
Maç sürüyor

Bu sefer hp <= 0 sorusunun cevabı false. JavaScript süslü parantezlerin içine hiç girmedi, kapanış } işaretinin arkasından devam etti. Maç sürüyor satırı if'in dışında olduğu için iki durumda da çalışır.

if (hp <= 0) { ···· console.log("Öldün") } koşul true ise bu satır çalışır if "eğer": burada bir karar başlıyor ( ) koşul parantezi: soru bunun içine yazılır hp <= 0 koşul: cevabı true ya da false olan soru { } blok: süslü parantezler arasındaki satırlar ···· girinti: blok içi 4 boşluk içeriden başlar
Şekil 2.2 Bir if cümlesinin parçaları.

Parçaları tek tek:

  • if: anahtar sözcük. Her zaman küçük harfle yazılır.
  • ( ) koşul parantezi: sorulacak soru bunun içine yazılır. Parantez zorunludur.
  • Koşul: cevabı true ya da false olan bir soru; burada hp <= 0.
  • { } süslü parantez: koşulun cevabı true olursa çalışacak satırları bir arada tutar. Bu satır grubuna blok denir.
  • Girinti: bloğun içindeki satırlar 4 boşluk içeriden başlar. Hangi satırın bloğa ait olduğu bir bakışta görünür.

Koşulda boolean değişken

Koşulun parantezine cevabı true ya da false olan her şey yazılabilir. Cevabı daha önce bir değişkene koyduysan doğrudan o değişkeni yazarsın:

ders2.js
let hp = 40const hayatta = hp > 0if (hayatta) {    console.log("Savaşa devam")}
Çıktı
Savaşa devam

hayatta zaten true ya da false tuttuğu için if (hayatta === true) yazmana gerek yok. İyi seçilmiş bir adla koşul bir cümle gibi okunur: "eğer hayattaysa".

Girinti kimin için?

JavaScript girintiye bakmaz. Bloğun içini hiç içeri almadan yazsan da program aynı çalışır:

ders2.js
let hp = 0if (hp <= 0) {console.log("Öldün")}console.log("Maç sürüyor")
Çıktı
ÖldünMaç sürüyor

Çalışıyor, ama hangi satırın bloğa ait olduğunu görmek için süslü parantezleri saymak zorundasın. Bloklar iç içe geçmeye başlayınca girintisiz kod okunmaz hâle gelir. Girinti bilgisayar için değil, kodu okuyan insan için; o insan çoğu zaman bir hafta sonraki sensin.

Süslü parantezi unutursan

if süslü parantez olmadan da yazılabilir; o zaman if'e yalnızca hemen altındaki tek satır bağlıdır. Girinti burada seni kandırabilir:

ders2.js✗ Yanlış
let hp = 50if (hp <= 0)    console.log("Öldün")    console.log("Yeniden doğma: 10 saniye")
Çıktı
Yeniden doğma: 10 saniye

Can 50, ölmedin; ama ekranda yeniden doğma yazısı var. İki satır da içeride durduğu için ikisi de if'e aitmiş gibi görünüyor. Oysa JavaScript girintiye bakmaz: süslü parantez yoksa if'e yalnızca ilk satır bağlıdır, dördüncü satır her durumda çalışır. Hata mesajı da yok; program sessizce yanlış çalışıyor.

Kural: tek satırlık bloklarda bile süslü parantezi her zaman yaz.

else: değilse

if tek başına "koşul doğruysa şunu yap, değilse hiçbir şey yapma" der. Çoğu zaman ikinci yolu da istersin: ölmediysen savaşa devam et. Bunun için if bloğunun kapanış süslüsünün hemen arkasına else (İngilizcede "değilse") yazılır:

ders2.js
let hp = 25if (hp <= 0) {    console.log("Öldün")} else {    console.log("Savaşa devam")}console.log("Maç sürüyor")
Çıktı
Savaşa devamMaç sürüyor

Koşulun cevabı false olduğu için ilk blok atlandı, else bloğu çalıştı. hp'yi 0 yaparsan tersi olur: Öldün yazılır, Savaşa devam yazılmaz. Hangi değeri verirsen ver, iki bloktan tam olarak biri çalışır: ikisi birden asla, hiçbiri de asla.

else için üç kural:

  • else'in koşulu yoktur. "Geri kalan her durum" demektir; arkasına parantez yazılmaz.
  • else, if bloğunun kapanış süslüsünden sonra gelir. Bu kursta ikisini aynı satıra yazıyoruz: } else {.
  • else tek başına kullanılamaz; her zaman bir if'in arkasından gelir.

İki bloğun içine de istediğin kadar satır koyabilirsin. Ders 1'deki hesapları da kullanabilirsin:

ders2.js
let hp = 100const hasar = 120hp = hp - hasarif (hp <= 0) {    console.log("Öldün")    console.log("Yeniden doğma: 10 saniye")} else {    console.log("Hasar aldın")    console.log("Kalan can: " + hp)}
Çıktı
ÖldünYeniden doğma: 10 saniye

120 hasar 100 canı eksiye düşürdü (-20), koşul true oldu ve ilk bloğun iki satırı da çalıştı. hasar'ı 30 yaparsan bu kez else bloğu çalışır ve ekrana Hasar aldın ile Kalan can: 70 gelir.

Akış şeması: kararı önce çiz

Program büyüdükçe kararları kafanda tutmak zorlaşır. Yazılımcılar bu yüzden karışık kararları kod yazmadan önce kâğıda çizer. Bu çizime akış şeması denir ve üç şekil yeter:

  • Oval: başla ve bitir.
  • Dikdörtgen: bir iş, yani bir ya da birkaç satır kod.
  • Elmas: bir karar. İçine soru yazılır, içinden iki ok çıkar: biri true (evet), biri false (hayır).
başla / bitir iş: kod satırı karar: soru izlenen yol çalışmayan yol Başla let hp = 25 hp <= 0 ? true (evet) false (hayır) "Öldün" yaz "Savaşa devam" yaz "Maç sürüyor" yaz Bitir
Şekil 2.3 "Savaşa devam" programının akış şeması. hp 25 iken program mor yoldan gider; kesik çizgili kutu hiç çalışmaz.

Şemayı okumak için parmağını Başla'ya koy ve okları izle. Elmasa gelince soruyu hp'nin o anki değeriyle cevapla: 25, 0'dan küçük ya da 0'a eşit mi? Hayır; o zaman false okunu izle. İki yol en sonda yeniden birleşir ve program Maç sürüyor ile devam eder.

En sinsi hata: koşulda tek =

Karşılaştırmak isterken === yerine tek = yazmak, yeni başlayanların en sık yaptığı hatalardan biridir. Kötü haber: JavaScript bu hatada mesaj vermez. Önce ne yazacağını tahmin et, sonra çıktıya bak:

ders2.js✗ Yanlış
let hp = 50if (hp = 0) {    console.log("Öldün")} else {    console.log("Hayattasın")}console.log("Can: " + hp)
Çıktı
HayattasınCan: 0

Program "Hayattasın" diyor ama canın 0 olmuş. Olan şu: hp = 0 bir soru değil, bir komuttur. hp kutusuna 0 konur ve koşulun yerine bu 0 geçer. JavaScript koşulda 0 görünce onu false gibi sayar (hangi değerlerin true, hangilerinin false sayıldığını Ders 12'de göreceksin), bu yüzden else çalıştı.

Eksik yazılan iki = hem yanlış yolu seçtirdi hem de canı sildi. 0 dışında bir sayı koysaydın tersi olurdu: if (hp = 100) her seferinde if bloğunu çalıştırır ve canı 100 yapar.

JavaScript✗ Yanlış
if (hp = 0) {
JavaScript✓ Doğru
if (hp === 0) {

Sınır değerleri: "çalışıyor" ile "doğru" aynı şey değil

Takım arkadaşın şu kuralı istiyor: "Canın 30 ya da daha azsa ekrana Canın azaldı, geri çekil yaz; değilse Savaşa devam yaz." Şu kodu yazdın:

ders2.js
let hp = 10if (hp < 30) {    console.log("Canın azaldı, geri çekil")} else {    console.log("Savaşa devam")}
Çıktı
Canın azaldı, geri çekil

10 ile doğru çalıştı. hp'yi 80 yapıp dene: Savaşa devam yazar, o da doğru. Program hatasız çalışıyor; peki iş bitti mi?

Kuralı bir daha oku: "30 ya da daha azsa". Şimdi hp'yi tam 30 yap:

Terminal — PowerShell
# let hp = 10 ikenPS C:\kod\ogren> node ders2.jsCanın azaldı, geri çekil# let hp = 80 ikenPS C:\kod\ogren> node ders2.jsSavaşa devam# let hp = 30 ikenPS C:\kod\ogren> node ders2.jsSavaşa devam

Canın tam 30 iken program "Savaşa devam" diyor; kurala göre geri çekilmen gerekiyordu. Program çalışıyor ama doğru değil. Sorun < işaretinde: 30 < 30 sorusunun cevabı false. Kural "30 ya da daha az" dediği için doğru işaret <=:

ders2.js✓ Doğru
let hp = 30if (hp <= 30) {    console.log("Canın azaldı, geri çekil")} else {    console.log("Savaşa devam")}
Çıktı
Canın azaldı, geri çekil
hp değeri 0 … 28 29 30 31 32 … 100 Kural çekil … çekil çekil çekil devam devam … devam hp < 30 çekil … çekil çekil devam devam devam … devam hp <= 30 çekil … çekil çekil çekil devam devam … devam fark yalnızca 30'da geri çekil savaşa devam kurala uymayan karar
Şekil 2.4 İki kod, sınırın dışındaki her değerde aynı kararı verir. Fark yalnızca tam 30'da ortaya çıkar.

İki kod yalnızca 30'da ayrılıyor; bir hata tek bir sayının arkasına saklanabilir. Bu yüzden bir koşulu denerken rastgele sayılar değil, sınır değerleri seçilir.

Her koşulu şu değerlerle dene:

  1. Sınırın kendisi: 30. < mı <= mü doğru, burada anlaşılır.
  2. Hemen altı ve hemen üstü: 29 ve 31.
  3. Uç değerler: 0, hatta eksi bir sayı ya da çok büyük bir sayı. Ders 1'de altının eksiye düşebildiğini gördün; can da düşebilir.

0'ı dene: Canın azaldı, geri çekil yazar. Kurala uygun ama tuhaf, çünkü canı 0 olan biri zaten ölmüştür. Sınır değerleri koddaki hataları olduğu kadar kuraldaki eksikleri de ortaya çıkarır. Üç ayrı durumu ("öldün", "geri çekil", "savaşa devam") birbirinden ayırmayı Ders 3'te öğreneceksin.

Hata türleri: hangisi ne zaman çıkar?

Ders 1'de üç hata türünü tanıdın ve SyntaxError'ın programı hiç başlatmadığını gördün. if işin içine girince yeni bir durum ortaya çıkıyor: bazı satırlar hiç çalışmayabilir. Bu da hataların ne zaman ortaya çıkacağını değiştirir.

Uyuyan hata: ReferenceError

Aşağıdaki programın 4. satırında değişkenin adı yanlış yazılmış (oyuncuu). Yine de çalıştırınca hiçbir hata görmezsin:

ders2.js
const oyuncu = "Ahri"let hp = 60if (hp <= 0) {    console.log(oyuncuu + " öldü")} else {    console.log(oyuncu + " savaşıyor")}
Çıktı
Ahri savaşıyor

Koşul false olduğu için 4. satır hiç çalışmadı; JavaScript oyuncuu adını aramaya hiç kalkmadı. Şimdi hp'yi 0 yap:

ders2.js
const oyuncu = "Ahri"let hp = 0if (hp <= 0) {    console.log(oyuncuu + " öldü")} else {    console.log(oyuncu + " savaşıyor")}
Hata çıktısı
C:\kod\ogren\ders2.js:4    console.log(oyuncuu + " öldü")                ^ ReferenceError: oyuncuu is not defined    at Object.<anonymous> (C:\kod\ogren\ders2.js:4:17)    ... Node.js v24.20.0

Hata, satır çalıştığı anda uyandı. Gerçek bir oyunda bu, Ahri'nin ilk ölümüne kadar kimsenin fark etmediği bir hata olurdu. ReferenceError bir adı kullanıldığı anda arar; o satıra hiç gelinmezse hata da hiç görünmez.

Uyuyan hata: TypeError

Aynısı TypeError için de geçerli. Burada can const ile açılmış, yani mühürlü; ama bunu ancak iksir içilmeye çalışılınca öğreniyorsun:

ders2.js
const hp = 20const iksir = 50if (hp < 30) {    hp = hp + iksir}console.log("Can: " + hp)
Hata çıktısı
C:\kod\ogren\ders2.js:4    hp = hp + iksir       ^ TypeError: Assignment to constant variable.    at Object.<anonymous> (C:\kod\ogren\ders2.js:4:8)    ... Node.js v24.20.0

hp 60 olsaydı koşul false olur, 4. satır çalışmaz ve program sorunsuzca Can: 60 yazardı. Düzeltmesi Ders 1'deki gibi: değeri değişecek kutu let ile açılır.

Hiç uyumayan hata: SyntaxError

Şimdi bir yazım hatasını hiç çalışmayacak bir bloğa koy. hp 80, yani if bloğu atlanacak:

ders2.js
let hp = 80console.log("Maç başladı")if (hp <= 0) {    console.log("Öldün"}
Hata çıktısı
C:\kod\ogren\ders2.js:4    console.log("Öldün"                ^^^^^^^ SyntaxError: missing ) after argument list    at wrapSafe (node:internal/modules/cjs/loader:1861:18)    ... Node.js v24.20.0

Maç başladı bile yazılmadı. Node programı çalıştırmadan önce dosyanın tamamını okur ve yazım kurallarını denetler; çalışacak satır da çalışmayacak satır da bu denetimden geçer. Bu yüzden SyntaxError hiç uyumaz: dosyada tek bir yazım hatası varsa program hiç başlamaz.

1. Okuma Node dosyanın tamamını okur, yazım kurallarını denetler. 2. Çalıştırma Satırlar sırayla çalışır, çalışmayan bloklar atlanır. SyntaxError Burada yakalanır: program hiç başlamaz. Hata, çalışmayacak bir blokta olsa bile. ReferenceError, TypeError Yalnız hatalı satır çalışınca çıkar; program o satıra kadar çalışır. Çalışmayan blokta uyur. Mantık hatası: mesaj yok Program sonuna kadar çalışır ama yanlış karar verir; onu ancak deneyerek yakalarsın.
Şekil 2.5 Node önce dosyayı okur, sonra çalıştırır. Hatanın türü, hangi aşamada yakalandığını söyler.
TürNe zaman çıkar?Bu dersteki örnekler
SyntaxErrorDosya okunurken; hiçbir satır çalışmaz=<, eksik }, else önünde unutulan }
ReferenceErrorHatalı satır çalışıncayanlış yazılmış ad (oyuncuu), True
TypeErrorHatalı satır çalışıncablok içinde const kutuyu değiştirmek
Mantık hatasıHiç mesaj çıkmaz<= yerine <, koşulda tek =

Bu tablodan çıkan alışkanlık: programını denerken her bloğun en az bir kez çalıştığından emin ol. if bloğunu çalıştıran bir değer, else bloğunu çalıştıran başka bir değer seç. Sınır değerleri bunu zaten sağlar: 30 bir bloğa, 31 öbürüne girer.

Parantezleri eşleştirmek

Bir if satırında iki çeşit parantez var: koşul için ( ), blok için { }. Bloğun içindeki console.log(...) da kendi parantezini getirir. Her açılan parantez aynı türden bir kapanışla kapanmalı; biri eksik ya da fazla olursa program hiç başlamaz (SyntaxError).

Alışkanlık: aç, kapat, sonra doldur

Parantezi açtığın anda kapat, içini sonra doldur. if yazacaksan önce iskeleti kur:

JavaScript
if () {}

Sonra imleci parantezin içine götürüp koşulu, süslülerin arasına geçip bloğu yaz. VS Code da bu konuda yardım eder: ( ya da { yazdığında kapanışını kendisi ekler. O kapanışı silme, içini doldur.

VS Code'un yardımı

  • Renkli çiftler: VS Code eşleşen parantezleri aynı renge boyar. Varsayılan koyu temada en dıştaki çift sarı, onun içindeki pembe-mor, daha içteki mavidir (açık temada renkler başka). Eşi olmayan bir parantez, açılış da olsa kapanış da olsa, kırmızı görünür.
  • Eşini göstermek: İmleci bir parantezin hemen yanına koyduğunda hem o parantez hem de eşi küçük bir kutuyla vurgulanır. Uzun bir bloğun nerede bittiğini böyle bulursun. Menüden Go → Go to Bracket'i seçersen imleç eşine atlar.
  • Kırmızı dalgalı çizgi: Yazım hatalarının çoğunu VS Code sen çalıştırmadan, altını kırmızı dalgalı çizerek gösterir. Fareyi çizginin üstüne getirince açıklamasını okursun. Bu açıklama Node'un mesajından farklı olabilir (örneğin '}' expected.) ama aynı sorunu gösterir.
if (hp <= 0) { console.log("Öldün") } else { console.log("Kalan: " + (hp - 10)) } en dıştaki çift içteki çift en içteki çift imleçteki çift
Şekil 2.6 VS Code'da parantez çiftleri: her iç içe kat başka renkte. İmleç ilk satırdaki { işaretinin yanındayken eşi olan } de vurgulanır.

Şimdi bilerek hata yap. Aşağıdaki programı yaz; if bloğunun kapanış süslüsü bilerek eksik (VS Code onu kendiliğinden eklerse sil). Kaydet ve çalıştır:

ders2.js — ogren — Visual Studio Code
ders2.js
let hp = 0if (hp <= 0) {    console.log("Öldün")console.log("Maç sürüyor")
PROBLEMSOUTPUTDEBUG CONSOLETERMINAL
PS C:\kod\ogren> node ders2.jsC:\kod\ogren\ders2.js:4console.log("Maç sürüyor")  SyntaxError: Unexpected end of input    at wrapSafe (node:internal/modules/cjs/loader:1861:18)    ... Node.js v24.20.0
Ln 1, Col 1Spaces: 4UTF-8JavaScript

VS Code son satırın sonunu kırmızı dalgalı çizgiyle işaretliyor; fareyle üstüne gelince '}' expected. yazıyor.

Unexpected end of input "beklenmedik girdi sonu" demek: Node dosyanın sonuna geldi ama bir { hâlâ kapanmamıştı. Mesajdaki satır numarası eksik süslünün yerini değil, dosyanın son satırını gösterir. Kapanmayan süslüyü bulmak için kendi VS Code'unda 2. satırdaki { işaretine bak: eşi olmadığı için kırmızı görünür.

Sık hatalar

Bu derste en sık karşılaşacağın hatalar burada. Bir hata aldığında buraya ya da bütün derslerin hatalarının toplandığı hata rehberine bak.

Sık hataSyntaxError: Unexpected token '<' (ters yazılmış <=)

Ne zaman çıkar? "Küçük ya da eşit" işaretini ters yazınca: =<.

ders2.js
let hp = 20if (hp =< 30) {    console.log("Geri çekil")}
Hata çıktısı
C:\kod\ogren\ders2.js:2if (hp =< 30) {        ^ SyntaxError: Unexpected token '<'    at wrapSafe (node:internal/modules/cjs/loader:1861:18)    ... Node.js v24.20.0

Nasıl düzelir? JavaScript = işaretini "koy" diye okudu, arkasından gelen < ile ne yapacağını bilemedi. İşareti söylediğin sırayla yaz: "küçük ya da eşit" <=, "büyük ya da eşit" >=; eşittir hep sağda. Dikkat: >= yerine => (önce eşittir, sonra büyüktür) yazarsan hata bile almazsın. JavaScript => işaretini Ders 10'da göreceğin bambaşka bir yapı sanar ve koşulu her seferinde doğru sayar: hp 10 iken bile if (hp => 30) bloğu çalışır.

Sık hataSyntaxError: Unexpected end of input

Ne zaman çıkar? Açtığın bir { işaretini kapatmayı unutunca. Node dosyanın sonuna gelir ama blok hâlâ açıktır. Yukarıda, VS Code'un yardımı bölümünde gördün.

Nasıl düzelir? Mesajdaki satır numarası dosyanın son satırını gösterir (dosyanın sonunda boş satır varsa o boş satırı), eksik süslünün yerini değil. VS Code'da eşi olmayan { kırmızı görünür; imleci yanına koyduğunda bir eş de vurgulanmaz. Kapanışı bloğun bittiği yere, if ile aynı hizaya yaz.

Sık hataSyntaxError: Unexpected token '}' (fazla süslü parantez)

Ne zaman çıkar? Fazladan bir } yazınca, çoğu zaman bir bloğu iki kez kapatınca.

ders2.js
let hp = 0if (hp <= 0) {    console.log("Öldün")}}console.log("Maç sürüyor")
Hata çıktısı
C:\kod\ogren\ders2.js:5}^ SyntaxError: Unexpected token '}'    at wrapSafe (node:internal/modules/cjs/loader:1861:18)    ... Node.js v24.20.0

Nasıl düzelir? ^ işaretinin gösterdiği } fazla: onun bir açılışı yok. Sil. VS Code da eşi olmayan bu } işaretini kırmızıya boyar.

Sık hataSyntaxError: Unexpected token 'else'

Ne zaman çıkar? if bloğunu kapatmadan else yazınca.

ders2.js
let hp = 25if (hp <= 0) {    console.log("Öldün")else {    console.log("Savaşa devam")}
Hata çıktısı
C:\kod\ogren\ders2.js:4else {^^^^ SyntaxError: Unexpected token 'else'    at wrapSafe (node:internal/modules/cjs/loader:1861:18)    ... Node.js v24.20.0

Nasıl düzelir? if bloğu hâlâ açıkken gelen else'i JavaScript yersiz buldu: else ancak bir if bloğu kapandıktan sonra gelebilir. else'in önüne } koy: } else {.

Sık hataSyntaxError: Unexpected token '{' (else'e koşul yazmak)

Ne zaman çıkar? else'in arkasına bir koşul yazınca.

ders2.js
let hp = 25if (hp <= 0) {    console.log("Öldün")} else (hp > 0) {    console.log("Hayattasın")}
Hata çıktısı
C:\kod\ogren\ders2.js:4} else (hp > 0) {                ^ SyntaxError: Unexpected token '{'    at wrapSafe (node:internal/modules/cjs/loader:1861:18)    ... Node.js v24.20.0

Nasıl düzelir? else'in koşulu olmaz; "geri kalan her durum" demektir. JavaScript (hp > 0) kısmını else'in yapacağı iş sandı ve arkasından gelen { işaretini beklemiyordu. Koşulu sil: } else {.

Süslüyü alt satıra yazmışsan durum daha kötü: hata çıkmaz, alttaki blok her seferinde çalışır ve hp 0 iken ekrana hem Öldün hem Hayattasın gelir. Birden çok koşulu sırayla denemenin doğru yolunu Ders 3'te öğreneceksin.

Sık hataSyntaxError: Unexpected token '{' (If büyük harfle)

Ne zaman çıkar? if'i büyük harfle yazınca: If.

ders2.js
let hp = 0If (hp <= 0) {    console.log("Öldün")}
Hata çıktısı
C:\kod\ogren\ders2.js:2If (hp <= 0) {             ^ SyntaxError: Unexpected token '{'    at wrapSafe (node:internal/modules/cjs/loader:1861:18)    ... Node.js v24.20.0

Nasıl düzelir? JavaScript büyük-küçük harfe duyarlıdır ve If'i tanımaz. Satırı console.log("…") gibi bir komut sanır: If adlı bir komuta parantez içinde bir şey veriyorsun. Böyle bir komutun arkasından { gelemeyeceği için { işaretini beklenmedik bulur. Anahtar sözcükleri hep küçük harfle yaz: if, else.

Süslüyü alt satıra yazmışsan mesaj bu kez ReferenceError: If is not defined olur; çözüm aynı.

Sık hataSyntaxError: Unexpected identifier 'hp'

Ne zaman çıkar? Koşulun parantezlerini unutunca.

ders2.js
let hp = 0if hp <= 0 {    console.log("Öldün")}
Hata çıktısı
C:\kod\ogren\ders2.js:2if hp <= 0 {   ^^ SyntaxError: Unexpected identifier 'hp'    at wrapSafe (node:internal/modules/cjs/loader:1861:18)    ... Node.js v24.20.0

Nasıl düzelir? Identifier "ad" demek: JavaScript if'ten sonra ( bekliyordu, karşısına hp adı çıktı. Koşulu parantez içine al: if (hp <= 0) {. Parantez her if'te zorunludur.

Sık hataReferenceError: True is not defined

Ne zaman çıkar? true ya da false sözcüğünü büyük harfle yazınca.

ders2.js
let hayatta = True
Hata çıktısı
C:\kod\ogren\ders2.js:1let hayatta = True              ^ ReferenceError: True is not defined    at Object.<anonymous> (C:\kod\ogren\ders2.js:1:15)    ... Node.js v24.20.0

Nasıl düzelir? JavaScript yalnızca küçük harfli true ve false'u tanır; True'yu bir değişken adı sandı ve bulamadı. Küçük harfle yaz. Tırnak da koyma: "true" bir metindir, boolean değildir.

Sık hataKoşulda tek =: hata yok, sonuç yanlış

Ne zaman çıkar? Karşılaştırmak isterken === yerine = yazınca: if (hp = 0). Mesaj çıkmaz; program yanlış yolu seçer ve değişkenin değerini de değiştirir. Yukarıda, En sinsi hata bölümünde gördün.

Nasıl düzelir? Koşul bir soru sormalı; tek = soru sormaz, değer koyar. Koşulun içindeki tek = işaretini kuralın istediği karşılaştırma işaretiyle değiştir: eşitliği soruyorsan ===, "en az" diyorsan >= gibi.

Sık hataSüslüsüz if: yalnızca ilk satır koşula bağlı

Ne zaman çıkar? if'ten sonra süslü parantez koymayıp altına birden çok satır yazınca. Mesaj çıkmaz; ikinci satırdan sonrası her durumda çalışır. Yukarıda, Süslü parantezi unutursan bölümünde gördün.

Nasıl düzelir? Bloğu her zaman { } içine al, tek satır olsa bile.

Görevler

Her görevi ders2.js dosyasında yap; önceki kodu sil ya da satırların başına // koy. Önce kendin dene, takılırsan ipuçlarını sırayla aç, çözüme en son bak. Görevlerde verilen sınır değerlerini tek tek dene: program hatasız çalıştı diye görevi bitmiş sayma.

Görev 1

Ult hazır mı?

Çoğu şampiyonun ulti (R) ilk kez 6. seviyede açılır. seviye adında bir değişken oluştur. Seviye 6 ya da daha fazlaysa Ultin hazır, R tuşuna basabilirsin, değilse Ult için 6. seviyeyi bekle yazdır. Kodu yazmadan önce akış şemasını kâğıda çiz: bir elmas, iki yol.

seviye 6 iken beklenen çıktı:

Metin
Ultin hazır, R tuşuna basabilirsin

Programını seviye 5, 6 ve 7 ile ayrı ayrı çalıştır.

İpucu 1

"6 ya da daha fazla" ifadesinin işareti tabloda var: büyük ya da eşit.

İpucu 2

İskelet if (seviye >= 6) { ile başlıyor, arkasından } else { geliyor. Her blokta bir console.log yeter.

Çözümü göster
ders2.js
const seviye = 6if (seviye >= 6) {    console.log("Ultin hazır, R tuşuna basabilirsin")} else {    console.log("Ult için 6. seviyeyi bekle")}
Çıktı
Ultin hazır, R tuşuna basabilirsin

Sınır denemesi: 5 → Ult için 6. seviyeyi bekle; 6 ve 7 → Ultin hazır, R tuşuna basabilirsin. >= yerine > yazdıysan program 6'da yanlış karar verir; 6'yı denemek bu yüzden şart.

seviye programın içinde değişmediği için const yeterli; denemek için değerini elle değiştirip yeniden çalıştırıyorsun. İstersen kararı önce bir boolean'a koyabilirsin: const ultHazir = seviye >= 6, sonra if (ultHazir) {. Sonuç aynıdır.

Görev 2

Mavi mi, kırmızı mı?

Sihirdar Vadisi'nde mavi takımın üssü sol altta, kırmızı takımınki sağ üstte. taraf adında bir değişkene "mavi" ya da "kırmızı" koy. Taraf "mavi" ise Üssün sol altta, değilse Üssün sağ üstte yazdır.

taraf "mavi" iken beklenen çıktı:

Metin
Üssün sol altta

Sonra taraf'ı sırayla "kırmızı", "Mavi" (büyük M) ve "yeşil" yapıp çalıştır. Hangi sonuçlar doğru, hangileri yanlış? Nedenini birer cümleyle açıkla.

İpucu 1

Metinler de === ile karşılaştırılır: taraf === "mavi".

İpucu 2

"Mavi" ile "mavi" JavaScript için aynı metin mi? Metinleri karşılaştırmak bölümündeki "Ahri" ile "ahri" örneğini hatırla.

Çözümü göster
ders2.js
const taraf = "mavi"if (taraf === "mavi") {    console.log("Üssün sol altta")} else {    console.log("Üssün sağ üstte")}
Çıktı
Üssün sol altta
  • "kırmızı" → Üssün sağ üstte. Doğru.
  • "Mavi" → Üssün sağ üstte. Yanlış: "Mavi" === "mavi" sorusunun cevabı false, çünkü büyük-küçük harf farklı. Program mavi takımdaki oyuncuyu kırmızı tarafa gönderdi.
  • "yeşil" → Üssün sağ üstte. Yanlış: yeşil diye bir taraf yok, ama else "geri kalan her durum" demek olduğu için bu değer de else'e düştü.

İki yanlışın da hata mesajı yok; ikisi de mantık hatası. Beklenmedik değerleri ayrıca yakalamayı Ders 3'te öğreneceksin. Aynı kararı !== ile de yazabilirsin: if (taraf !== "mavi") dersen iki bloğun yerini değiştirmen gerekir.

Görev 3

Dükkânı onar

Ders 1'deki dükkân görevini hatırla: kılıç 450 altın, iki tane alıyorsun; altının yetmeyince program eksiye düşüyordu. Şimdi programı akıllı yap:

  • Altının iki kılıca yetiyorsa kılıçları al ve kalan altını yaz.
  • Yetmiyorsa altına dokunma ve kaç altın eksik olduğunu yaz.

altin 1000 iken beklenen çıktı:

Metin
2 kılıç aldın, kalan altın: 100

altin 800 iken beklenen çıktı:

Metin
Altının yetmiyor, 100 altın eksik

Sonra 900, 899 ve 0 ile de dene.

İpucu 1

İki kılıcın toplam fiyatını önce bir değişkene koy: const toplamFiyat = kilicFiyati * 2. Koşul şu soruyu sorsun: altın bu fiyata yetiyor mu?

İpucu 2

"Yetiyor" demek "altın fiyattan az değil" demek; tam 900 altınla da alabilmelisin. Hangi işaret?

İpucu 3

Eksik miktarı da ayrı bir değişkende hesapla: const eksik = toplamFiyat - altin. Hesabı metnin içinde parantezsiz yaparsan ("Altının yetmiyor, " + toplamFiyat - altin + " altın eksik") ekranda yalnızca NaN altın eksik görürsün; nedenini Ders 9'da öğreneceksin.

Çözümü göster
ders2.js
const kilicFiyati = 450let altin = 1000const toplamFiyat = kilicFiyati * 2if (altin >= toplamFiyat) {    altin = altin - toplamFiyat    console.log("2 kılıç aldın, kalan altın: " + altin)} else {    const eksik = toplamFiyat - altin    console.log("Altının yetmiyor, " + eksik + " altın eksik")}
Çıktı
2 kılıç aldın, kalan altın: 100

Sınır denemesi: 900 → 2 kılıç aldın, kalan altın: 0 (tam yetiyor; > yazsaydın burada yanlış karar verirdi). 899 → Altının yetmiyor, 1 altın eksik. 0 → Altının yetmiyor, 900 altın eksik. Altın artık hiçbir değerde eksiye düşmüyor.

Görev 4

Hata avı: yetenek

Aşağıdaki program bir yetenek kullanmaya çalışıyor. Mana, yeteneğin bedeline yetiyorsa (bedelden az değilse) yeteneği kullanıp manadan düşmeli; yetmiyorsa Mana yetmiyor demeli. Programda üç hata var. İlk ikisini hata mesajlarını okuyarak bul. Üçüncüsünün mesajı yok; onu çıktıya bakarak ve sınır değerleriyle deneyerek yakalayacaksın.

ders2.js✗ Yanlış
let mana = 40const yetenekBedeli = 50If (mana = yetenekBedeli) {    mana = mana - yetenekBedeli    console.log("Yeteneği kullandın")else {    console.log("Mana yetmiyor")}console.log("Kalan mana: " + mana)
Hata çıktısı
C:\kod\ogren\ders2.js:3If (mana = yetenekBedeli) {                          ^ SyntaxError: Unexpected token '{'    at wrapSafe (node:internal/modules/cjs/loader:1861:18)    ... Node.js v24.20.0

Hepsini düzeltince mana 40 iken çıktı şu olmalı:

Metin
Mana yetmiyorKalan mana: 40
İpucu 1

İlk mesaj 3. satırdaki { işaretini gösteriyor ama sorun satırın başında. Anahtar sözcüğün harflerine bak.

İpucu 2

İkinci mesaj Unexpected token 'else' olacak. else'ten önce ne eksik?

İpucu 3

Program artık hatasız çalışıyor ama 40 manayla 50 manalık yeteneği kullanabildin ve mana 0 oldu. Koşulun içindeki işaret bir soru mu soruyor, yoksa bir şey mi koyuyor? "Az değilse" hangi işaret?

Çözümü göster
ders2.js
let mana = 40const yetenekBedeli = 50if (mana >= yetenekBedeli) {    mana = mana - yetenekBedeli    console.log("Yeteneği kullandın")} else {    console.log("Mana yetmiyor")}console.log("Kalan mana: " + mana)
Çıktı
Mana yetmiyorKalan mana: 40

Sırasıyla: If → if (SyntaxError: Unexpected token '{'); else'ten önce eksik } (SyntaxError: Unexpected token 'else'); koşuldaki tek = → >=. Üçüncüsünün mesajı yoktu: düzeltmeden önce program her manada Yeteneği kullandın yazıp manayı 0 yapıyordu.

Sınır denemesi: 49 → Mana yetmiyor; 50 → Yeteneği kullandın ve Kalan mana: 0; 51 → Kalan mana: 1. Tek = işaretini === yaptıysan 40'ta doğru görünür ama 51'de Mana yetmiyor der: "yetiyor" eşit olmak değil, az olmamak demek.

Görev 5

TFT faizi

TFT'de her turda, elindeki her 10 altın için 1 altın faiz kazanırsın; ama faiz en fazla 5 olabilir. Yani 47 altın 4 faiz getirir, 50 altın da 80 altın da 5 getirir.

altin adında bir değişken oluştur, faizi hesapla ve şunu yazdır (altin 47 iken):

Metin
Altın: 47, faiz: 4

Faizi elle yazmak yok, JavaScript hesaplasın. Programını 0, 9, 10, 49, 50, 51 ve 80 ile dene.

İpucu 1

"Her 10 altın için 1" demek, altını 10'a bölüp küsuratı atmak demek. Ders 1'deki altın paylaşımı görevinde küsuratı % ile nasıl attığını hatırla.

İpucu 2

(altin - altin % 10) / 10 hesabı 47 için 4, 80 için 8 verir. 8 fazla: üst sınırı bir if ile uygula.

İpucu 3

Faiz değişebileceği için onu let ile oluştur. faiz 5'ten büyükse onu 5 yap. Bu if'in else'e ihtiyacı yok: faiz 5 ya da daha azsa olduğu gibi kalır.

Çözümü göster
ders2.js
const altin = 47let faiz = (altin - altin % 10) / 10if (faiz > 5) {    faiz = 5}console.log("Altın: " + altin + ", faiz: " + faiz)
Çıktı
Altın: 47, faiz: 4

Sınır denemesi: 0 → 0, 9 → 0, 10 → 1, 49 → 4, 50 → 5, 51 → 5, 80 → 5. if olmasa 80 altın 8 faiz getirirdi. Bu programda iki ayrı sınır var: 10'un katları (faiz bir artar) ve 50 (faiz tavana ulaşır). İyi bir deneme ikisini de yoklar.

Kendini sına

Soru 1

Bu program ne yazar?

JavaScript
console.log(10 >= 10)console.log(7 !== 7)console.log("7" === 7)
Cevabı göster

true, false, false. 10, 10'a eşit olduğu için "büyük ya da eşit mi?" sorusunun cevabı evet. 7, 7'den farklı değil; !== "farklı mı?" diye sorduğu için cevap hayır. Son satırda biri metin, öbürü sayı; === türe de baktığı için eşit değiller.

Soru 2

Hangi satırlar ekrana gelir?

JavaScript
let hp = 30if (hp < 30) {    console.log("A")} else {    console.log("B")}console.log("C")
Cevabı göster

B ve C. 30 < 30 sorusunun cevabı false, bu yüzden else bloğu çalışır. C yazan satır if/else'in dışında olduğu için her durumda çalışır. Tam sınırda olduğun için tuzaklı bir soruydu: koşul hp <= 30 olsaydı A ve C yazardı.

Soru 3

Bu program iki satır yazıyor. Hangileri?

JavaScript
let hp = 50if (hp = 100) {    console.log("Canın dolu")} else {    console.log("Canın dolu değil")}console.log(hp)
Cevabı göster

Canın dolu ve 100. Koşulda tek = var: soru sorulmadı, hp kutusuna 100 kondu. JavaScript koşulda 0 dışındaki sayıları true sayar, bu yüzden if bloğu çalıştı ve can gerçekten 100 oldu. Doğrusu if (hp === 100); o zaman Canın dolu değil ve 50 yazardı.

Soru 4

Mesajı oku: hata hangi satırda ve ne eksik?

Hata çıktısı
C:\kod\ogren\ders2.js:6else {^^^^ SyntaxError: Unexpected token 'else'
Cevabı göster

Hata 6. satırda, else sözcüğünde. else'ten önce if bloğu kapanmamış: } eksik. Doğrusu } else {. Bu bir SyntaxError olduğu için program hiç başlamadı; 6. satırdan önceki satırlar da çalışmadı.

Soru 5

Hangi değerlerle denersin?

Kural: "Seviye 18'e ulaşınca ekrana En yüksek seviyedesin yaz." Arkadaşın if (seviye > 18) yazmış, 5 ve 10 ile denemiş ve sorun görmemiş. Sen hangi değerlerle denersin? Hatayı hangisi yakalar?

Cevabı göster

Sınırın kendisi ve iki yanı: 17, 18, 19. Hatayı 18 yakalar: seviye tam 18 iken 18 > 18 sorusunun cevabı false, yani program en yüksek seviyede olduğunu söylemez. Doğrusu seviye >= 18. 5 ve 10 sınırdan uzak oldukları için bu hatayı hiçbir zaman göstermez.

Soru 6

Bu program hp 60 iken sorunsuz çalışıyor, 0 iken hata veriyor. Neden?

JavaScript
const sampiyon = "Garen"let hp = 60if (hp > 0) {    console.log(sampiyon + " savaşıyor")} else {    console.log(sampiyn + " öldü")}
Cevabı göster

6. satırda sampiyn yanlış yazılmış. hp 60 iken koşul true, else bloğu hiç çalışmaz ve JavaScript o adı hiç aramaz. hp 0 olunca else bloğu çalışır ve ReferenceError: sampiyn is not defined çıkar. ReferenceError ve TypeError ancak hatalı satır çalışınca ortaya çıkar; bu yüzden her bloğu en az bir kez çalıştıracak değerlerle dene.

Soru 7

"10" == 10 ve "10" === 10 ne verir? Hangisini kullanmalısın?

Cevabı göster

true ve false. == önce metni sayıya çevirip öyle karşılaştırır; === türe de bakar ve metinle sayıyı eşit saymaz. Her zaman === (ve !==) kullan.

Kayıt noktası

Ders 1'de bu klasörde Git'i başlattın (git init); o iş bir klasörde yalnızca bir kez yapılır. Bundan sonra her dersin sonunda iki komut yeter. VS Code terminalinde, C:\kod\ogren klasöründeyken:

Bir sonraki derste ikiden fazla seçenek arasında karar vermeyi (else if), koşulları "ve", "veya" ile birleştirmeyi ve tekrar eden kodu fonksiyonlarda toplamayı öğreneceksin.

İşaret yalnızca bu tarayıcıda saklanır, kimseye gönderilmez.