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:
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 turi | Misol | Xato xabari |
|---|---|---|
| ReferenceError | fname = foo; | foo is not defined |
| ReferenceError | let x = y; let y = 5; | Cannot access y before initialization |
let x = 5;
try {
x = y + 1;
} catch(err) {
let text = err.name;
}Initsializatsiyadan oldin o'zgaruvchiga kirish mumkin emas:
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.
| Xato | Misol | Xato xabari |
|---|---|---|
| TypeError | Anna(5); | Anna is not a function |
| TypeError | let num = 1; num.toUpperCase(); | num.toUpperCase is not a function |
try {
Anna(5);
} catch(err) {
let text = err.name;
}Raqamni katta harfga aylantirish mumkin emas:
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 turi | Misol | Xato xabari |
|---|---|---|
| RangeError | new Array(-1); | Invalid array length |
| RangeError | num.toPrecision(500); | toPrecision() argument must be between 1 and 100 |
try {
new Array(-1);
} catch(err) {
let text = err.name;
}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 turi | Misol | Xato xabari |
|---|---|---|
| URIError | decodeURI("%%%"); | URI malformed |
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.
| Xato | Misol | Xato |
|---|---|---|
| SyntaxError | fname = "John); | Invalid or unexpected token ) |
| SyntaxError | Math.round(4.6; | Missing ) after argument list |
// Bu qatorni JavaScript tahlil qila olmaydi
let fName = "John);
// Bajarish bu yerda to'xtaydiYuqoridagi 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.
