JavaScript const kalit so'zi
const kalit so'zi ES6 (2015) versiyasida joriy qilingan.
const yordamida e'lon qilingan o'zgaruvchilarning asosiy xususiyatlari:
- Qayta e'lon qilib bo'lmaydi.
- Qiymatni qayta biriktirib bo'lmaydi (reassigned).
- Blok qamroviga (Block Scope) ega.
Qiymatni qayta biriktirib bo'lmaydi
const bilan aniqlangan o'zgaruvchining qiymatini o'zgartirish mumkin emas:
Xatolik
const PI = 3.141592653589793;
PI = 3.14; // Bu xatolik beradi
PI = PI + 10; // Bu ham xatolik beradiE'lon qilishda qiymat berish shart
JavaScript const o'zgaruvchilarini e'lon qilish vaqtida ularga qiymat biriktirilishi shart:
To'g'ri usul
const PI = 3.14159265359;Noto'g'ri usul
const PI;
PI = 3.14159265359; // Xatolik beradiQachon const ishlatish kerak?
Turg'un qoida sifatida: Agar o'zgaruvchining qiymati o'zgarmasligini bilsangiz, har doim const ishlating.
Quyidagilarni e'lon qilishda har doim const ishlating:
- Yangi Massivlar (Arrays)
- Yangi Ob'ektlar (Objects)
- Yangi Funksiyalar (Functions)
- Yangi Muntazam ifodalar (RegExp)
O'zgarmas Ob'ektlar va Massivlar
const kalit so'zi biroz chalg'ituvchi bo'lishi mumkin. U o'zgarmas qiymatni emas, balki o'zgarmas havolani (reference) belgilaydi.
Shu sababli siz:
- O'zgarmas qiymatni qayta biriktira olmaysiz.
- O'zgarmas massivni qayta biriktira olmaysiz.
- O'zgarmas ob'ektni qayta biriktira olmaysiz.
Lekin siz:
- O'zgarmas massiv ichidagi elementlarni o'zgartira olasiz.
- O'zgarmas ob'ekt ichidagi xususiyatlarni (properties) o'zgartira olasiz.
O'zgarmas Massivlar
Misol
// O'zgarmas massiv yaratish:
const cars = ["Saab", "Volvo", "BMW"];
// Elementni o'zgartirish:
cars[0] = "Toyota";
// Element qo'shish:
cars.push("Audi");
// cars hozir: ["Toyota", "Volvo", "BMW", "Audi"]Lekin massivning o'zini qayta biriktirish mumkin emas:
Xatolik
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // XATOLIK!O'zgarmas Ob'ektlar
Misol
// O'zgarmas ob'ekt yaratish:
const car = {type:"Fiat", model:"500", color:"white"};
// Xususiyatni o'zgartirish:
car.color = "red";
// Yangi xususiyat qo'shish:
car.owner = "Ali";Lekin ob'ektning o'zini qayta biriktirish mumkin emas:
Xatolik
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; // XATOLIK!var, let va const farqi
Yuqoridagi farqlarni eslab qolish uchun quyidagi jadvalga qarang:
| Xususiyat | var | let | const |
|---|---|---|---|
| Blok qamrovi | Yo'q | Ha | Ha |
| Qayta e'lon qilish | Ha | Yo'q | Yo'q |
| Qiymatni qayta biriktirish | Ha | Ha | Yo'q |
| Hoisting | Ha | Yo'q* | Yo'q* |
* let va const ham hoisting bo'ladi, lekin "Temporal Dead Zone"da bo'ladi (ishga tushirilmaydi).
Blok Qamrovi
const ham let kabi blok qamroviga ega. Blok ichidagi const o'zgaruvchisi tashqaridagisidan mustaqildir:
Misol
const x = 10;
// Bu yerda x = 10
{
const x = 2;
// Bu yerda x = 2
}
// Bu yerda x = 10