JavaScript Hata Türleri
Syntax Errors
Sözdizimi hataları, kodun yazım kurallarına uygun olmaması durumunda ortaya çıkar. Tarayıcı veya JavaScript çalışma ortamı bu hataları kod çalışmadan önce tespit eder.
var x = 10
if (x == 10) { // Eksik parantez
console.log("Hello");
// }
Yukarıdaki örnekte "if" yapısının kapanma parantezi yorum satırına alındığı için bir yazım hatası (Syntax Error) oluşmuştur.
TypeError
Bir değişkenin veya değerin beklenen türde olmaması durumunda meydana gelir. Örnek:
let obj = null;
console.log(obj.property); //null üzerinde toUpperCase() çağrılamaz
Yukarıdaki örnekte "null" değeri tanımlanan bir değişkeni, String ifadelerde yazıları büyük harfe çeviren metod ile kullanarak bir "tür" hatası yapılmıştır.
ReferenceError
Tanımlanmamış veya erişilemez bir değişkene başvurulduğunda oluşur. Örnek:
console.log(x); // y tanımlı değil
Yukarıdaki örnekte tanımlı olmayan "y" isimli değer, console.log() metodu ile ekrana yazdırılmaya çalışıldığından "ReferenseError" hatası oluşmuştur.
RangeError
Bir değerin izin verilen aralık dışında olduğunda ortaya çıkar. Örnek:
function recursiveFunction() {
recursiveFunction(); // Çok fazla yinelenme
}
recursiveFunction();
Yukarıdaki örnekte, oluşturulan fonksiyon kendi kendini çağırmaya çalıştığından kaynaklı sonsuz bir döngü oluşturmuştur. Bu nedenle "RangeError (Aralık Hatası)" meydana gelmiştir.
URIError
Genellikle URL parametlerini kodlama ve çözme aşamlarında ve diğer JavaScript String işlemlerinde kullanılan encodeURI(), decodeURI(), encodeURLComponent(), decodeURIComponent() fonksiyonlarında meydana gelen hataları temsil etmektedir.
decodeURIComponent('%'); // Geçersiz bir URI bileşeni
encodeURIComponent('https://example.com/path'); // Geçerli URL bileşeni
Yukarıdaki örnekte, hem geçerli olanı hem de geçersiz olan ve hataya sebep olan kullanımı görüntülenmiştir.