25 август 2025

JavaScript maxsus xususiyatlari

Bu bob hozir o’rgangan JavaScript xususiyatlarini qisqacha takrorlaydi va nozik momentlarga alohida e’tibor beradi.

Kod tuzilishi

Iboralar nuqta-vergul bilan ajratiladi:

alert("Salom");
alert("Dunyo");

Odatda, qator uzilishi ham ajratuvchi sifatida qaraladi, shuning uchun bu ham ishlaydi:

alert("Salom");
alert("Dunyo");

Bu “avtomatik nuqta-vergul qo’yish” deb ataladi. Ba’zan u ishlamaydi, masalan:

alert("Bu xabardan keyin xato bo'ladi")[(1, 2)].forEach(alert);

Ko’pchilik kod uslubi qo’llanmalari har bir iboradan keyin nuqta-vergul qo’yishga rozi.

Kod bloklari {...} va ular bilan tsikllar kabi sintaksis konstruksiyalaridan keyin nuqta-vergul shart emas:

function f() {
  // funksiya e'lonidan keyin nuqta-vergul kerak emas
}

for (;;) {
  // tsikldan keyin nuqta-vergul kerak emas
}

…Lekin agar biror joyga “qo’shimcha” nuqta-vergul qo’ysak ham, bu xato emas. U e’tiborga olinmaydi.

Batafsil: Kod tuzilishi.

Qat’iy rejim

Zamonaviy JavaScript-ning barcha xususiyatlarini to’liq yoqish uchun skriptlarni "use strict" bilan boshlashimiz kerak.

'use strict';

...

Direktiva skriptning yuqorisida yoki funksiya tanasining boshida bo’lishi kerak.

"use strict" bo’lmasa ham, hamma narsa ishlaydi, lekin ba’zi xususiyatlar eski uslubda, “mos” tarzda ishlaydi. Biz odatda zamonaviy xatti-harakatni afzal ko’ramiz.

Tilning ba’zi zamonaviy xususiyatlari (kelajakda o’rganadigan sinflar kabi) qat’iy rejimni bilvosita yoqadi.

Batafsil: Zamonaviy rejim, "use strict".

O’zgaruvchilar

Quyidagilar yordamida e’lon qilish mumkin:

  • let
  • const (doimiy, o’zgartirib bo’lmaydi)
  • var (eski uslub, keyinroq ko’ramiz)

O’zgaruvchi nomi quyidagilarni o’z ichiga olishi mumkin:

  • Harflar va raqamlar, lekin birinchi belgi raqam bo’lmasligi mumkin.
  • $ va _ belgilar oddiy, harflar bilan teng.
  • Lotin bo’lmagan alifbolar va ierogliflar ham ruxsat etilgan, lekin odatda ishlatilmaydi.

O’zgaruvchilar dinamik tipga ega. Ular istalgan qiymatni saqlashi mumkin:

let x = 5;
x = "John";

8 ta ma’lumot turi mavjud:

  • number suzuvchi nuqta va butun sonlar uchun,
  • bigint ixtiyoriy uzunlikdagi butun sonlar uchun,
  • string satrlar uchun,
  • boolean mantiqiy qiymatlar uchun: true/false,
  • null – bitta null qiymatli tip, “bo’sh” yoki “mavjud emas” ma’nosini bildiradi,
  • undefined – bitta undefined qiymatli tip, “tayinlanmagan” ma’nosini bildiradi,
  • object va symbol – murakkab ma’lumotlar tuzilmalari va noyob identifikatorlar uchun, biz ularni hali o’rganmadik.

typeof operatori qiymat uchun tipni qaytaradi, ikkita istisno bilan:

typeof null == "object"; // tildagi xato
typeof function () {} == "function"; // funksiyalar alohida ko'rib chiqiladi

Batafsil: O'zgaruvchilar va Ma'lumotlar turlari.

O’zaro ta’sir

Biz brauzerni ish muhiti sifatida ishlatamoqdamiz, shuning uchun asosiy UI funksiyalar quyidagicha bo’ladi:

prompt(question, [default])
question so’rash va tashrif buyuruvchi kiritgan narsani yoki "bekor qilish"ni bossalar null ni qaytarish.
confirm(question)
question so’rash va Ok va Bekor qilish o’rtasida tanlashni taklif qilish. Tanlov true/false sifatida qaytariladi.