⊗jsPmCdScpN 135 of 505 menu

JavaScript'te if-else Yapılarında Değişken Kapsamının Nüansları

Değişken kapsamının bazı nüansları vardır. Hadi bunu bir örnekle inceleyelim. Koşulumuzun dışında, bir değere sahip res değişkenini tanımlayalım ve koşulun içinde bu değeri başka bir değerle değiştirelim:

let res = 1; if (true) { res = 2; } console.log(res); // 2 yazacak

Gördüğünüz gibi, res değişkeni koşulun içinde değişti. Ancak, koşulun içinde res değişkenini let ile tekrar tanımlarsak her şey değişir:

let res = 1; if (true) { let res = 2; // değişkeni let ile tanımlayalım } console.log(res); // 2 değil, 1 yazacak!

Buradaki mesele, koşulun içinde let ile değişken tanımlamanın yerel bir res değişkeni oluşturmasıdır.

Yani koşulun içinde bir tane res değişkeni varken, koşulun dışında başka bir tane vardır. Bunu, değişkenin değerini koşulun içinde konsola yazdırarak görebiliriz:

let res = 1; if (true) { let res = 2; console.log(res); // 2 yazacak } console.log(res); // 1 yazacak

Aşağıdaki kodun yazarı, yaşın 18'e ulaşıp ulaşmadığını kontrol etmek istedi. Ancak kod, yaş ne olursa olsun konsola undefined değerini yazdırıyor. Kod yazarının hatasını düzeltin. İşte sorunlu kod:

let age = 17; let adult; if (age >= 18) { let adult = true; } else { let adult = false; } console.log(adult);

Aşağıdaki kodun yazarı, yaşın 18'e ulaşıp ulaşmadığını kontrol etmek istedi. Kod kontrol edildikten sonra, yaş 18 veya daha büyükse, adult değişkenine olması gerektiği gibi true yazıldığı, ancak yaş 18'den küçükse, adult değişkeninin undefined değerine sahip olduğu anlaşıldı. Kod yazarının hatasını düzeltin.

İşte sorunlu kod:

let age = 17; let adult; if (age >= 18) { adult = true; } else { let adult = false; } console.log(adult);

Aşağıdaki kodun yazarı, yaş kontrolü yapmak istedi. Ancak kod, yaş ne olursa olsun konsola undefined değerini yazdırıyor. Kod yazarının hatasını düzeltin.

İşte sorunlu kod:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = '18 ile 23 arası'; } else { let res = '23\'ten büyük'; } } else { let res = '18\'den küçük'; } console.log(res);

Aşağıdaki kodun yazarı, yaş kontrolü yapmak istedi. Ancak kod, yaş 18'den büyük olduğunda konsola undefined değerini yazdırıyor. Kod yazarının hatasını düzeltin.

İşte sorunlu kod:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = '18 ile 23 arası'; } else { res = '23\'ten büyük'; } } else { res = '18\'den küçük'; } console.log(res);
Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet