Genelde javascript yazımına ara verdiğimde veya program yazıp sonra javascript yazmaya başladığımda bazı sorunlarla karşılaşıyorum. Geriye baktığımda ise bu hataların %80-90’ının aynı hatalar olduğunu gördüm, bunları siteye yazmayı düşündüm ve biraz araştırınca aynı dertten muzdarip olan bir çok insan olduğunu gördüm. Genelde hatayı bulup düzelttiğimizde bunu nasıl görememişim değimiz(yuh artık buda olamaz!) hatalardır bunlar.

Kendi sorunlarım ve araştırıp bulduğu genel sorunlar:

= ve == operatörleri

= tanımlama operatörü, == iki değeri eşitlemek için kullanılır. Genelde bir karışık oluyor

:::javascript
 var nDeger = deneme.gif ;  == örnek verecek olursak; [sourcecode language="javascript"] if(nDeger == fatih.gif){ alert("Fatih geldi"); }

genelde karşılaştığım hata

:::javascript
 if(MyVar = "xyz")

Tırnak İşaretleri

Dizgiler(string) tırnak işareti içinde olmalıdır. Tek tırnak veya çift tırnak. Genelde çift tırnak ile başlayan tek tırnak ile kapattığımızda veya tek tırnak ile başlayanı çift tırnak ile kapattığımızda sorun yaşıyoruz. Yada dizgileri tırnak içine almayı unutuyoruz.

Parantezler

Parantezlerde de açılan parantezi kapanmamasından kaynaklana sorunlarda en çok karşılaştığımız sorunlardan biridir. if, for ve do while gibi işlemler için kullandığımız parantezleri kapatmadığımızda hata yaşıyoruz. Kod yazım formatımızı düzenli yaparsak bu sorunu çözebiliriz.

Hiyerarşi sorunları

Çoğu zaman karşılaştığımız sorunlardan bir taneside doküman hiyerarşisine göre daha oluşturulmamış bir nesneye erişmek istediğimizde “abs has no properties” gibi bir hata ile karşılaşırız. Genelde javascript dosyalarını <head> etiketi içinde tanımlarız ve sayfa yüklenirken bir işlev yapılmasını istediğimizde böyle bir hata alırız. Eğer sayfa ilk yüklendiğinde bir şey yapmak istiyorsak bu kodu sayfa sonuna koymalıyız, yada yapmak istediğimiz işi sayfadaki bir nesne ile tetikleyerekte bu sorunu çözebiliriz.

Programın kullandığı Değişkenleri Kullanmak

Çok azda olsa böyle bir sorunla karşılaşabiliriz. Javascript programının kendi değişkenlerini biz kullanmaya çalıştığımızda hata verir. Tam listesini rezerver edilmiş kelimeler linkinden bulabilirsiniz.

Küçük büyük karakter karışımı

Javascript ile kod yazarken küçük büyük harflere dikkat etmeliyiz. Küçük büyük harf bir çok hataya neden olur.

:::javascript
 var adSoyad = "Fatih Hayrioğlu"; If (adSoyad == "fatih hayrioğlu")

Yukarıdaki kodda iki adet hata var. İlk hata If kullanımı. Javascript bize If konusunda sorun olduğunu söylemez, ama IE “Object expected” hatası verir, Firefox ise “If is not defined.” hatasını verir. İkinci hata ise ilk tanımda “Fatih Hayrioğlu” tanımına karşın sorguda “fatih hayrioğlu” eşleşmesi bize false değeri gönderecektir.

Ayrıca belirtmek istediğim bir yer daha var. OnMouseOver ile onMouseOver aynı şey değildir.

’+’ Kullanımını

Javascript’te +(artı) işareti hem sayısal toplama hemde string birleştirmek için kullanılır. Karıştırmamak lazım.

:::javascript
 1 + 1 = 2

ve

:::javascript
 '1' + '1' = '11'

Ayrıca string birleştirirken tırnak işareti ile kullanılmalıdır.

:::javascript
 myString = myName + " ekle " + myString ;

Javascript: sözde protokolünün kullanımı

Javascript: sözde protokolü onClick gibi olay tetikleyicileri ile kullanılmaz. Bu kullanım URL’lerde olur Örneğin etiketin href özelliğinde ve <form> etiketinin action özelliğinde

:::html
 <a href="javascript:pencereAc();">Pencere Ac</a>

document.write

document.write sayfa tamamen yüklendikten sonra işler ve içeriğin üzerine yazar.

Sonuç

Gerek javascript yazarken gerekse diğer programları yazarken bir çok hata ile karşılaşıyoruz. Hataları en aza indirmek ve çözmek için bir çok yöntem var. İlk olarak yaptığımız hataları tanırsak ona göre tedbir alırız. Firefox’un FireBug aracı bence hata ayıklamak için bir numaralı araç.

Kaynaklar

Avatar Popout Efekti

Avatar Popout Efekti uygulaması Devamını oku

Kapsayıcı sorguları (container query)

29 January 2024 tarihinde yayınlandı.

Renk geçişli ve Hareketli kenar çizgileri

22 January 2024 tarihinde yayınlandı.