Genelde Karşılaşılan Javascript Hataları

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

var nDeger = deneme.gif ;

== örnek verecek olursak;

if(nDeger == fatih.gif){
	alert("Fatih geldi");
}

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

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.

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.

1 + 1 = 2

ve

'1' + '1' = '11'

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

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 <a> etiketin href özelliğinde ve <form> etiketinin action özelliğinde

<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

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

6 Yorum (Yorum Ekle)

  • serencamm diyor ki:

    Merhaba Fatih Bey,

    Çalışmalarınızı ve açıklamalarınızı ilgiyle takip ediyorum. Ben bir sorun ile karşı karşıyayım. Sıfırdan kod yazacak kadar konuya hakim olmadığım için genelde işime yarayan kodları çalışmama göre düzenlerek kullanıyorum. Fakat birden fazla scripti aynı sayfada kullanamıyor muyuz?
    Çalıştıramadım. Biri çalışınca diğeri iptal oldu. Ne yapabilirim? Yardımcı olabilir misiniz?

    • fatihhayri diyor ki:

      Bir sayfada isteidğiniz kadar script dosyası kullanırsınız. Bir biriyle çakışan bir kod veya javascript lerin birinde bir hata olabilir

  • temizlik şirketi diyor ki:

    paylasım için tesekkürler….

  • she's not there diyor ki:

    metotlardaki küçük büyük harf ayrımı insanı dellendiriyor,dikkatli olmak lazım.

  • gevv diyor ki:

    Teşekkürler Abi ben pek anlamasamda :) ilgilenen bir çok kişinin işine yarayacağı kesin

    bir ara yoğun bir şekilde MooTools ve Prototype Scriptler ile uğraştım birlikte çalışamıyorlar :) wordpress temasına bir menü eklemiştim MooTools kullanıyor menü fakat Prototype kullanan lightbox eklentisini aktif hale getirdiğimde menü çalışmıyordu yüzlerce deneme yaptım :D bir türlü çözememiştim sonrasında vaz geçtim bu sevdadan :)

  • emin varol diyor ki:

    fatih abiden güzel bir makale daha

Yorum yaz

Format: Yorum içinde kullanılabilecek HTML kodları: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

?