23 Ekim 2022

Kod yapısı

Öğrenilmesi gereken ilk şey kod bloğunun nasıl oluşturulacağıdır.

İfadeler

İfadeler, komutları oluşturmak için yazdığımız cümlelerdir.

Şu ana kadar alert('Merhaba Dünya') ifadesini gördük ve bunun uyarı mesajı verdiğini biliyorsunuz.

Kodun içerisinde istediğimiz kadar ifadeye sahip olabiliriz. Diğer kod cümlesi birbirinden noktalı virgül ile ayrılır.

Örneğin burada mesaj ikiye ayrılmıştır.

alert('Merhaba'); alert('Dünya');

Genelde ifadeler farklı satırlarda yazılırlar. Böylece yazdığınız kod daha okunabilir olacaktır.

alert('Merhaba');
alert('Dünya');

Noktalı Virgüller

Eğer ifadeleri satır bırakarak yazarsanız noktalı virgül kullanmanıza gerek yoktur.

Örneğin aşağıdaki kod bloğu da çalışacaktır.

alert('Merhaba')
alert('Dünya')

JavaScript dilinde bu şekilde satır bırakarak ifadeyi bitirme olayına “üstü kapalı” noktalı virgül denilmektedir. Ayrıca otomatik noktalı virgül koyma da denir

Çoğu durumda yeni satır, noktalı virgül anlamına gelir. Unutulmamalı ki çoğu durum, her zaman anlamına gelmez.

Aşağıdaki örnekte görüleceği üzeri yeni satır noktalı virgül anlamına gelmemektedir.

alert(3 +
1
+ 2);

Yukarıdaki bloğun çıktısı 6 olacaktır çünkü JavaScript yeni satırda noktalı virgül eklememiştir. Buradan anlayabilirsiniz ki eğer satır "+" ile bitiyorsa ifade bitmiş sayılmaz ve noktalı virgül gereklidir. Bu durumda yukarıdaki kod beklendiği gibi çalışmaktadır.

Fakat bazı durumlarda noktalı virgülün otomatik olarak konulması gerekirken JavaScript bunu yapmakta sorun yaşar

Böyle hataları bulmak oldukça zordur.

Hata Örneği

Eğer böyle bir hata görmek istiyorsanız, aşağıdaki koda bir bakın

[1, 2].forEach(alert)

[] veya forEach in ne anlama geldiğini bilmenize şimdilik gerek yok daha sonra bu konuyu işleyeceğiz. Şu anda bilmeniz gereken önce 1 uyarısı alacaksınız sonra 2.

Şimdi bu koddan önce noktalı virgül ile bitmeyen bir uyarı ifadesi yazın.

alert("Hata alacaksınız")

[1, 2].forEach(alert)

Eğer yukarıdaki kodu çalıştırırsanız sadece ilk uyarı mesajını görecek ve sonrasında hata alacaksınız.

Fakat aşağıdaki gibi noktalı virgül kullanırsanız her şeyin beklenen şekilde çalıştığını göreceksiniz:

alert("Şimdi ise beklendiği gibi hatasız");

[1, 2].forEach(alert)

Şimdi “Her şey yolunda” mesajını ve ardından 1 ve 2’yi görüyoruz.

İlk yazdığımız kod bloğunda hata olmasının sebebi JavaScript’in [...] den önce noktalı virgül gelmeyeceğini varsaymasından dolayı olmaktadır.

Bundan dolayı noktalı virgül koyulmaz, bu durumda ilk kod bloğunda tüm blok bir ifadesi olarak görülür. JavaScript motoru kodu aşağıdaki gibi görecektir.