JS Eğitimi

ANA SAYFA JS Giriş JS Nereye JS Çıktı JS İfadeleri JS Sözdizimi JS Yorumları JS Değişkenleri JS Let JS Sabiti JS Operatörleri JS Aritmetiği JS Ataması JS Veri Türleri JS Fonksiyonları JS Nesneleri JS Etkinlikleri JS Dizeleri JS Dize Yöntemleri JS Dizisi Arama JS Dize Şablonları JS Numaraları JS Numarası Yöntemleri JS Dizileri JS Dizi Yöntemleri JS Dizi Sıralaması JS Dizi Yineleme JS Dizi Sabiti JS Tarihleri JS Tarih Formatları JS Tarih Alma Yöntemleri JS Tarih Ayar Yöntemleri JS Matematik JS Rastgele JS Booleanları JS Karşılaştırmaları JS Koşulları JS Anahtarı JS Döngüsü İçin JS Döngüsü İçin JS Döngüsü JS Döngüsü JS Arası JS Yinelenebilirler JS Setleri JS Haritaları JS Türü JS Tipi Dönüşüm JS Bitsel JS Normal İfade JS Hataları JS Kapsamı JS Kaldırma JS Sıkı Modu Bu Anahtar Kelimeyi JS JS Ok İşlevi JS Sınıfları JS JSON JS Hata Ayıklama JS Stil Kılavuzu JS En İyi Uygulamaları JS Hataları JS Performansı JS Ayrılmış Kelimeler

JS Sürümleri

JS Sürümleri JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Kenar JS Geçmişi

JS Nesneleri

Nesne Tanımları Nesne Özellikleri Nesne Yöntemleri Nesne Görüntüleme Nesne Erişimcileri Nesne Oluşturucuları Nesne Prototipleri Nesne Yinelenebilirler Nesne Kümeleri Nesne Haritaları Nesne Referansı

JS Fonksiyonları

Fonksiyon Tanımları Fonksiyon Parametreleri Fonksiyon Çağırma İşlev Çağrısı İşlev Uygula Fonksiyon Kapanışları

JS Sınıfları

Sınıf Tanıtımı Sınıf Kalıtımı Sınıf Statik

JS Zaman uyumsuz

JS Geri Aramaları JS Asenkron JS Sözleri JS Zaman uyumsuz/Bekliyor

JS HTML DOM'si

DOM Tanıtımı DOM Yöntemleri DOM Belgesi DOM Öğeleri DOM HTML'si DOM Formları DOM CSS'si DOM Animasyonları DOM Olayları DOM Olay Dinleyicisi DOM Gezinme DOM Düğümleri DOM Koleksiyonları DOM Düğüm Listeleri

JS Tarayıcı Malzeme Listesi

JS Penceresi JS Ekranı JS Konumu JS Geçmişi JS Navigatörü JS Açılır Pencere Uyarısı JS Zamanlaması JS Çerezleri

JS Web API'leri

Web API'sine Giriş Web Formları API'sı Web Geçmişi API'si Web Depolama API'sı Web Çalışanı API'si Web Getirme API'si Web Coğrafi Konum API'sı

JS AJAX

AJAX'a Giriş AJAX XMLHttp AJAX İsteği AJAX Yanıtı AJAX XML Dosyası AJAX PHP AJAX ASP AJAX Veritabanı AJAX Uygulamaları AJAX Örnekleri

JS JSON

JSON'a Giriş JSON Sözdizimi JSON'a karşı XML JSON Veri Türleri JSON Ayrıştırma JSON Stringify JSON Nesneleri JSON Dizileri JSON Sunucusu JSON PHP JSON HTML'si JSON JSONP

JS ve jQuery

jQuery Seçiciler jQuery HTML'si jQuery CSS'si jQuery DOM'si

JS Grafikleri

JS Grafikleri JS Tuval JS Konusu JS Chart.js JS Google Grafiği JS D3.js

JS Örnekleri

JS Örnekleri JS HTML DOM'si JS HTML Girişi JS HTML Nesneleri JS HTML Olayları JS Tarayıcı JS Editörü JS Alıştırmaları JS Testi JS Sertifikası

JS Referansları

JavaScript Nesneleri HTML DOM Nesneleri


JavaScript Hataları


Fırlat ve Dene...Yakala...Sonunda

İfade try, çalıştırılacak (denemek için) bir kod bloğu tanımlar.

İfade catch, herhangi bir hatayı işlemek için bir kod bloğu tanımlar.

İfade finally, sonuçtan bağımsız olarak çalıştırılacak bir kod bloğu tanımlar.

İfade throw, özel bir hatayı tanımlar.


Hatalar Olacak!

JavaScript kodu yürütülürken farklı hatalar oluşabilir.

Hatalar, programcı tarafından yapılan kodlama hataları, yanlış girişten kaynaklanan hatalar ve diğer öngörülemeyen şeyler olabilir.

Örnek

Bu örnekte, kasıtlı olarak bir hata oluşturmak için "alert"i "adddlert" olarak yanlış yazdık:

<p id="demo"></p>

<script>
try {
  adddlert("Welcome guest!");
}
catch(err) {
  document.getElementById("demo").innerHTML = err.message;
}
</script>

JavaScript , adddlert'i bir hata olarak yakalar ve onu işlemek için yakalama kodunu yürütür.


JavaScript dene ve yakala

İfade try, yürütülürken hatalara karşı test edilecek bir kod bloğu tanımlamanıza izin verir.

Deyim catch, try bloğunda bir hata meydana gelirse yürütülecek bir kod bloğu tanımlamanıza izin verir.

JavaScript ifadeleri tryve catch çiftler halinde gelir:

try {
  Block of code to try
}
catch(err) {
  Block of code to handle errors
}


JavaScript Atar Hataları

Bir hata oluştuğunda, JavaScript normalde durur ve bir hata mesajı oluşturur.

Bunun teknik terimi şudur: JavaScript bir istisna atar (hata atar) .

JavaScript aslında iki özelliğe sahip bir Error nesnesi oluşturacaktır: name ve message .


fırlatma Açıklaması

İfade throw, özel bir hata oluşturmanıza olanak tanır.

Teknik olarak bir istisna atabilirsiniz (bir hata atabilirsiniz) .

İstisna bir JavaScript String, a Number, a Booleanveya bir olabilir Object:

throw "Too big";    // throw a text
throw 500;          // throw a number

ve throwile birlikte kullanırsanız , program akışını kontrol edebilir ve özel hata mesajları oluşturabilirsiniz.trycatch


Giriş Doğrulama Örneği

Bu örnek girdiyi inceler. Değer yanlışsa, bir istisna (err) atılır.

Özel durum (err), catch ifadesi tarafından yakalanır ve özel bir hata mesajı görüntülenir:

<!DOCTYPE html>
<html>
<body>

<p>Please input a number between 5 and 10:</p>

<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="p01"></p>

<script>
function myFunction() {
  const message = document.getElementById("p01");
  message.innerHTML = "";
  let x = document.getElementById("demo").value;
  try {
    if(x == "") throw "empty";
    if(isNaN(x)) throw "not a number";
    x = Number(x);
    if(x < 5) throw "too low";
    if(x > 10) throw "too high";
  }
  catch(err) {
    message.innerHTML = "Input is " + err;
  }
}
</script>

</body>
</html>

HTML Doğrulama

Yukarıdaki kod sadece bir örnektir.

Modern tarayıcılar, HTML özniteliklerinde tanımlanan önceden tanımlanmış doğrulama kurallarını kullanarak genellikle JavaScript ve yerleşik HTML doğrulamasının bir kombinasyonunu kullanır:

<input id="demo" type="number" min="5" max="10" step="1">

Bu öğreticinin sonraki bir bölümünde form doğrulama hakkında daha fazla bilgi edinebilirsiniz.


Son Açıklama

İfade finally, sonuçtan bağımsız olarak, dene ve yakala sonrasında kodu yürütmenize izin verir:

Sözdizimi

try {
  Block of code to try
}
catch(err) {
  Block of code to handle errors
}
finally {
  Block of code to be executed regardless of the try / catch result
}

Örnek

function myFunction() {
  const message = document.getElementById("p01");
  message.innerHTML = "";
  let x = document.getElementById("demo").value;
  try {
    if(x == "") throw "is empty";
    if(isNaN(x)) throw "is not a number";
    x = Number(x);
    if(x > 10) throw "is too high";
    if(x < 5) throw "is too low";
  }
  catch(err) {
    message.innerHTML = "Error: " + err + ".";
  }
  finally {
    document.getElementById("demo").value = "";
  }
}

Hata Nesnesi

JavaScript, bir hata oluştuğunda hata bilgisi sağlayan yerleşik bir hata nesnesine sahiptir.

error nesnesi iki faydalı özellik sağlar: isim ve mesaj.


Hata Nesnesi Özellikleri

MülkAçıklama
isimBir hata adı ayarlar veya döndürür
İletiBir hata mesajı ayarlar veya döndürür (bir dize)

Hata Adı Değerleri

error name özelliği tarafından altı farklı değer döndürülebilir:

Hata AdıAçıklama
Değerlendirme Hatasıeval() işlevinde bir hata oluştu
AralıkHatası"Aralık dışı" bir sayı oluştu
Referans HatasıGeçersiz bir referans oluştu
Sözdizimi hatasıBir sözdizimi hatası oluştu
TipHataBir tür hatası oluştu
URIE hatasıencodeURI() içinde bir hata oluştu

Altı farklı değer aşağıda açıklanmıştır.


Değerlendirme Hatası

An EvalError, eval() işlevinde bir hatayı belirtir.

JavaScript'in daha yeni sürümleri EvalError oluşturmaz. Bunun yerine SyntaxError kullanın.


Aralık Hatası

RangeErrorYasal değerler aralığının dışında bir sayı kullanırsanız A atılır.

Örneğin: Bir sayının anlamlı basamak sayısını 500 olarak ayarlayamazsınız.

Örnek

let num = 1;
try {
  num.toPrecision(500);   // A number cannot have 500 significant digits
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

Referans Hatası

ReferenceErrorBildirilmemiş bir değişken kullanırsanız (referans) A atılır:

Örnek

let x = 5;
try {
  x = y + 1;   // y cannot be used (referenced)
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

Sözdizimi hatası

SyntaxErrorKodu bir sözdizimi hatasıyla değerlendirmeye çalışırsanız A atılır.

Örnek

try {
  eval("alert('Hello)");   // Missing ' will produce an error
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

Tip Hatası

TypeErrorBeklenen tür aralığının dışında bir değer kullanırsanız A atılır:

Örnek

let num = 1;
try {
  num.toUpperCase();   // You cannot convert a number to upper case
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

URI (Tekdüzen Kaynak Tanımlayıcı) Hatası

Bir URI işlevinde geçersiz karakterler kullanırsanız A URIErroratılır:

Örnek

try {
  decodeURI("%%%");   // You cannot URI decode percent signs
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

Standart Olmayan Hata Nesnesi Özellikleri

Mozilla ve Microsoft, standart olmayan bazı hata nesnesi özelliklerini tanımlar:

fileName (Mozilla)
lineNumber (Mozilla)
columnNumber (Mozilla)
yığını (Mozilla)
açıklama (Microsoft)
numarası (Microsoft)

Bu mülkleri halka açık web sitelerinde kullanmayın. Tüm tarayıcılarda çalışmazlar.


Eksiksiz Hata Referansı

Error nesnesinin tam bir referansı için Complete JavaScript Error Reference sayfamıza gidin .