constructor function / Errors(xatolar)
Tags: aripovdev, javascript, bekmuhammaddev
Published: 2024-06-18 15:43:28

MAVZU:
- constructor function 
- Errors

Qo'shimcha:
- debugger keyword

**constructor function**

Konstruktor funksiyasi (constructor function) JavaScriptda obyektlar yaratish uchun ishlatiladigan maxsus funksiyadir. 

Konstruktor Funksiya shu ko'rinishda yaratiladi:

```
function Car(make, model, year) {
    this.make = make;
    this.model = model;
    this.year = year;
}

```
Bu yerda Car nomli konstruktor funksiyasi yaratilgan. Konstruktor funksiyasi yangi obyekt yaratish uchun ishlatiladi va odatda katta harf bilan boshlanadi.
Bu funksiyada make, model, va year parametrlar bo'lib, ular yangi yaratilayotgan obyektning xususiyatlarini ifodalaydi.

this kalit so'zi yangi yaratilayotgan obyektni bildiradi:
this Kalit so'zi:
this kalit so'zining qiymati funksiyani qanday chaqirganingizga bog'liq. Konstruktor funksiyalarida this yangi yaratilgan obyektga ishora qiladi. Metodlar ichida esa this metod chaqirilgan obyektga ishora qiladi.

Yangi obyekt yaratish:

```

let myCar = new Car('Toyota', 'Corolla', 2020);

```

Bu yerda new kalit so'zi yordamida Car konstruktor funksiyasi chaqirilgan va yangi obyekt yaratilgan. Bu chaqiruv quyidagi vazifalarni bajaradi:

- Yangi bo'sh obyekt yaratiladi.
- Yaratilgan obyekt this konteks biriktiriladi.
- Car funksiyasi this orqali yangi obyektni to'ldiradi:
 make, model, va year xususiyatlari  Toyota, Corolla, va 2020 qiymatlarini oladi.
- Konstruktor funksiyasi avtomatik ravishda yangi yaratilgan obyektni qaytaradi va myCar o'zgaruvchisiga biriktiriladi.

Obyekt hususiyatlarini cansolega chiqarish:

```
console.log(myCar.make); 

```
Bu yerda myCar o'zgaruvchisi  yaratilgandan so'ng, uning make xususiyatiga kirish uchun console.log orqali natijani chiqaramiz. Bu kod Toyota qiymatini konsolga chiqaradi, chunki myCar obyektining make xususiyati Toyotaga teng qilib belgilangan.


**JAVASCRIPT ERRORS**
Errors(xatolar turlari) turlari:
- ReferenceError
- SyntaxError
- TypeError
- URIError
- EvalError
- InternalError:

1-ReferenceError
ReferenceError ma'lum bir o'zgaruvchi yoki funksiya mavjud bo'lmaganida yoki aniqlanmaganida yuzaga keladi.

```
console.log(test); 

```

cansole:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cflviytbkypga6gead8i.png)


2-SyntaxError
SyntaxError JavaScript kodida sintaksis xatolik mavjud bo'lganida yuzaga keladi. Bu xatolar kod yozilishidagi qoidabuzarliklarni ifodalaydi.

```
a =; 5; // 

```
Bu yerda a =; noto'g'ri yozilgan, chunki = operatori to'g'ri foydalanilmagan.

cansole:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gk27cz99j2f4vbwgjhqo.png)

3-TypeError
TypeError ma'lum bir amal yoki operatsiya noto'g'ri turdagi qiymatga nisbatan bajarilganda yuzaga keladi.

```
"abc".toFixed(5); 

```

Bu yerda toFixed metod faqat raqamli qiymatlarga nisbatan qo'llaniladi, lekin u string qiymatga qo'llanilgan.

cansole:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/45je5pw58erf1hf5ajv3.png)

4-URIError
URIError URI (Uniform Resource Identifier) bilan bog'liq noto'g'ri foydalanish holatlarida yuzaga keladi. Bu xatolar decodeURI(), decodeURIComponent(), encodeURI(), va encodeURIComponent() funksiyalari noto'g'ri parametrlar bilan chaqirilganda paydo bo'lishi mumkin.

```
decodeURIComponent('%'); 

```
Bu yerda % belgisi noto'g'ri bo'lganligi uchun xato yuzaga keladi.

cansole:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pfor9puftfdviwox82qj.png)

5-EvalError
EvalError dasturda noto'g'ri ishlatilgan eval() funksiyasi natijasida yuzaga kelishi mumkin. Biroq, ES5 versiyasidan boshlab EvalError deyarli ishlatilmaydi va kamdan-kam hollarda uchraydi.

```
eval("foo bar"); 

```
ES5 versiyasidan keyin, EvalError odatda boshqa xatolar bilan almashtiriladi.

cansole:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7j8ep3hbv96d7wb4w8vq.png)

6-InternalError
InternalError JavaScript dvigatelida ichki muammo yoki cheklov tufayli yuzaga keladi. Bu xatolar kamdan-kam uchraydi va ko'pincha recursion chuqurligi oshib ketganida yoki JavaScript interpreter ichida boshqa ichki xatolar sodir bo'lganda paydo bo'ladi.

```
function recurse() {
    recurse();
}
recurse();

```
Bu yerda funksiya o'z-o'zini cheksiz chaqirish natijasida recursion chuqurligi oshib ketgan.

cansole:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2dxyqyi00q44i6vhctnr.png)

JavaScriptda xatolarni tutish va ularga ishlov berish uchun try-catch bloki ishlatiladi. Xatolarni to'g'ri tutish va ularga ishlov berish dastur barqarorligini ta'minlash uchun muhimdir.

```
try { 
    console.log(test);// 
} catch (error) {
    console.log(error.massage); 
}finnaly{
cansole.log("finish")
}

```
Bu yerda siz k0dlaringizni yozib tekshirishingiz mumkin,agar xato topiladigan bo'lsa keyingi, erorr blockiga o'tiladi agar xato topilmasa finnaly blockiga o'tiladi va kondishin yakunlanadi.


JavaScriptda xatolarni tushunish va ularga ishlov berish dastur barqarorligini ta'minlash uchun muhimdir. Har bir xato turi o'ziga xos xususiyatlarga ega bo'lib, dasturchilar uchun xatolarni aniqlash va tuzatishda yordam beradi. try-catch bloklari yordamida xatolarga ishlov berish dasturlarning noto'g'ri ishlashining oldini olishda muhim vositadir.


**debugging**

JavaScriptda debugger kalit so'zi kodni qadama qadam tahlil qilish,  jarayonni soddalashtirish uchun ishlatiladi. Bu kalit so'z javascriptda yozilgan barcha kodlarni,funksiyalarni,brauzerda yoki boshqa debugging vositalarida ishlaydigan kodni to'xtatish va uning holatini tahlil qilish imkonini beradi.

debuggingni vazifalari:

debugger kalit so'zi ko'rsatilgan joydan kodning o'qilishini  to'xtatadi va debugger vositasini chaqiradi. Bu, ayniqsa, murakkab kodlarni tushunish va xatolarni aniqlashda anchagina qo'l keladi.
Kod to'xtatilgan joyda o'zgaruvchilarni kuzatish va ularning qiymatlarini tahlil qilish mumkin. Bu orqali xatolarni tezda topish va tuzatish osonlashadi.Barcha yozilgan kodlarni birma-bir tekshirish va uning natijasini ko'ra olamiz.

debugger kalit so'zining ishlashi:

```
function name1() {
    console.log('name1');
}

function name2() {
    console.log('name2');
}

function name3() {
    console.log('name3');
}

debugger

name1();

debugger 

name2();

debugger

name3();
```
Bu kodda debugg keywortini call qilib chaqirilgan funksiyalar tepasidan yozilgan va tepadan pastga harakatlanib yozilgan kodlarni ya'ni funksiyalar va natijalarni ko'rib tahlil qilishiimiz mumkin.

debugging ishlatilishi:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d4gwb3yis5bresv6jepe.png)

cansole:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k8sh9nytlp73i320ufwu.png)

Debugger Kalit So'zini Ishlatishda Ehtiyot Choralari:

Ishlab chiqarishda olib tashlash: debugger kalit so'zi ishlab chiqarish (production) muhitida olib tashlanishi kerak. Aks holda, u foydalanuvchilar uchun noqulaylik tug'dirishi mumkin.

Foydalanish joyini belgilash: debugger kalit so'zini faqat kerakli joylarda va qisqa muddatli tahlil jarayonlarida foydalaning. Kodingizda ortiqcha debugger kalit so'zlari bo'lishi kerak emas.

debugger kalit so'zi JavaScriptda kodning ijrosini to'xtatish, o'zgaruvchilarni kuzatish va xatolarni topish uchun kuchli vositadir. Bu kalit so'z yordamida siz kodni qadam-baqadam tahlil qilishingiz va murakkab muammolarni tezda aniqlab, tuzatishingiz mumkin. Debugging jarayonini samarali qilish uchun debugger kalit so'zini qanday ishlatishni va uning foydali tomonlarini bilish juda muhim.