Skip to content

JavaScript Massivlar va const

ES6 (2015) bilan birga JavaScript-ga const kalit so'zi kirib keldi. Bugungi kunda massivlarni e'lon qilishda const dan foydalanish odatiy holga (best practice) aylangan.


1. Qayta qiymat berib bo'lmaydi

const bilan yaratilgan massivga boshqa yangi massivni o'zlashtirib bo'lmaydi. Bu xatolikka olib keladi.

Xato misol

js
const mashinalar = ["Saab", "Volvo", "BMW"];
mashinalar = ["Toyota", "Volvo", "Audi"]; // XATO! (Assignment to constant variable)

2. Massivlar "o'zgarmas" emas

const kalit so'zi biroz chalg'ituvchi bo'lishi mumkin. U o'zgarmas massivni emas, balki massivga bo'lgan o'zgarmas havolani (reference) belgilaydi.

Shu sababli, biz hali ham massivning elementlarini o'zgartirishimiz mumkin:

js
const mashinalar = ["Saab", "Volvo", "BMW"];

// Elementni o'zgartirish mumkin:
mashinalar[0] = "Toyota";

// Yangi element qo'shish mumkin:
mashinalar.push("Audi");

console.log(mashinalar); // ["Toyota", "Volvo", "BMW", "Audi"]

3. E'lon qilish vaqtida qiymat berish (Initialization)

const bilan e'lon qilingan o'zgaruvchiga o'sha zahoti qiymat berilishi shart. Massivni keyinroq to'ldirish uchun bo'sh qoldirib bo'lmaydi.

Xato:

js
const mashinalar; // XATO!
mashinalar = ["Saab", "Volvo", "BMW"];

var bilan esa buni qilish mumkin:

js
mashinalar = ["Saab", "Volvo", "BMW"];
var mashinalar; // To'g'ri (Hoisting sababli)

4. Blok doirasi (Block Scope)

const bilan yaratilgan massiv blok doirasiga ega. Ya'ni, jingalak qavslar { } ichida yaratilgan massiv tashqaridagi xuddi shu nomli massivdan mustaqil hisoblanadi.

js
const mashinalar = ["Saab", "Volvo", "BMW"];
// Bu yerda mashinalar[0] - "Saab"

{
  const mashinalar = ["Toyota", "Volvo", "BMW"];
  // Bu yerda mashinalar[0] - "Toyota"
}

// Bu yerda yana mashinalar[0] - "Saab"

Xulosa

Hozirgi zamonaviy JavaScript-da massivlar uchun har doim const dan foydalanish tavsiya etiladi. Agar siz massivning o'zini butunlay yangisiga almashtirmasangiz (ki buni qilish kamdan-kam hollarda kerak bo'ladi), const eng xavfsiz va to'g'ri yo'ldir.