Skip to content

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

js
const PI = 3.141592653589793;
PI = 3.14;      // Bu xatolik beradi
PI = PI + 10;   // Bu ham xatolik beradi

E'lon qilishda qiymat berish shart

JavaScript const o'zgaruvchilarini e'lon qilish vaqtida ularga qiymat biriktirilishi shart:

To'g'ri usul

js
const PI = 3.14159265359;

Noto'g'ri usul

js
const PI;
PI = 3.14159265359; // Xatolik beradi

Qachon 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

js
// 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

js
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];    // XATOLIK!

O'zgarmas Ob'ektlar

Misol

js
// 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

js
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:

Xususiyatvarletconst
Blok qamroviYo'qHaHa
Qayta e'lon qilishHaYo'qYo'q
Qiymatni qayta biriktirishHaHaYo'q
HoistingHaYo'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

js
const x = 10;
// Bu yerda x = 10
{
  const x = 2;
  // Bu yerda x = 2
}
// Bu yerda x = 10