Skip to content

JavaScript Xatolar (Errors)

Xatolar bo'ladi!

JavaScript kodini bajarishda turli xatolar yuzaga kelishi mumkin: dasturchi tomonidan kodlash xatolari, noto'g'ri kiritish va boshqa kutilmagan holatlar:

  • Reference Errors (Havola xatolari)
  • Type Errors (Tur xatolari)
  • Range Errors (Diapazon xatolari)
  • URI Errors (URI xatolari)
  • Syntax Errors (Sintaksis xatolari)
  • Eval Error (eskirgan)
  • Silent Errors (Yashirin xatolar — keyingi bob)

JavaScript xatolarini qanday boshqarish

try bayonoti xatolar uchun tekshiriladigan kod blokini belgilashga imkon beradi.

catch bayonoti try blokida xato yuzaga kelsa bajariladigan kod blokini belgilashga imkon beradi.

try va catch bayonotlari juft bo'lib keladi:

js
try {
  // Sinab ko'riladigan kod bloki
} catch(err) {
  // Xatolarni boshqarish uchun kod bloki
}

Reference Errors (Havola xatolari)

ReferenceError mavjud bo'lmagan o'zgaruvchini ishlatganda yuzaga keladi.

Xato turiMisolXato xabari
ReferenceErrorfname = foo;foo is not defined
ReferenceErrorlet x = y; let y = 5;Cannot access y before initialization
js
let x = 5;

try {
  x = y + 1;
} catch(err) {
  let text = err.name;
}

Initsializatsiyadan oldin o'zgaruvchiga kirish mumkin emas:

js
try {
  let x = y;
  let y = 5;
} catch(err) {
  let text = err.name;
}

JavaScript Type Errors (Tur xatolari)

Type Error qiymat noto'g'ri turda bo'lganda yoki amal shu turda yaroqsiz bo'lganda yuzaga keladi.

XatoMisolXato xabari
TypeErrorAnna(5);Anna is not a function
TypeErrorlet num = 1; num.toUpperCase();num.toUpperCase is not a function
js
try {
  Anna(5);
} catch(err) {
  let text = err.name;
}

Raqamni katta harfga aylantirish mumkin emas:

js
let num = 1;
try {
  num.toUpperCase();
} catch(err) {
  let text = err.name;
}

JavaScript Range Errors (Diapazon xatolari)

RangeError qiymat yaroqli diapazoni tashqarisida bo'lganda yuzaga keladi.

Xato turiMisolXato xabari
RangeErrornew Array(-1);Invalid array length
RangeErrornum.toPrecision(500);toPrecision() argument must be between 1 and 100
js
try {
  new Array(-1);
} catch(err) {
  let text = err.name;
}
js
let num = 1;

try {
  num.toPrecision(500);   // Raqamda 500 ta muhim raqam bo'lishi mumkin emas
} catch(err) {
  let text = err.name;
}

JavaScript URI Errors

(Uniform Resource Identifier xatolari)

URIError URI funksiyasida noqonuniy belgilar ishlatganda yuzaga keladi:

Xato turiMisolXato xabari
URIErrordecodeURI("%%%");URI malformed
js
try {
  decodeURI("%%%");   // Foiz belgilarini URI dekodlash mumkin emas
} catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

JavaScript Syntax Errors (Sintaksis xatolari)

Syntax Error kod JavaScript sintaksisi qoidalarini buzganda yuzaga keladi.

XatoMisolXato
SyntaxErrorfname = "John);Invalid or unexpected token )
SyntaxErrorMath.round(4.6;Missing ) after argument list
js
// Bu qatorni JavaScript tahlil qila olmaydi
let fName = "John);

// Bajarish bu yerda to'xtaydi

Yuqoridagi bayonot: Invalid or unexpected token xatosini yaratadi. Dastur bajarilishi to'xtaydi!

Sintaksis xatolari ushlash mumkin emas

  • Sintaksis xatolari try...catch bilan ushlash mumkin emas
  • Sintaksis xatolar bajarish vaqtidan oldin sodir bo'ladi

JavaScript Eval Error

EvalError eval() funksiyasidagi xatoni ko'rsatadi.

Eskirgan

JavaScript-ning yangi versiyalari EvalError tashlmaydi. Uning o'rniga SyntaxError ishlating.