JavaScript Maxsus Xususiyatlari
Ushbu bobda biz hozirgacha o‘rgangan JavaScript xususiyatlarini qisqacha ko‘rib chiqamiz, ayniqsa nozik nuanslarga e’tibor qaratamiz.
JavaScript Maxsus Xususiyatlari
Ushbu bobda biz hozirgacha o‘rgangan JavaScript xususiyatlarini qisqacha ko‘rib chiqamiz, ayniqsa nozik nuanslarga e’tibor qaratamiz.
Kod tuzilishi
Bayonotlar nuqta-vergul bilan ajratiladi:
Odatda, qator oxirida yangi qator boshlash ham delimiter sifatida qabul qilinadi, shuning uchun quyidagicha ham ishlaydi:
Buni “avtomatik nuqta-vergul qo‘yish” deb atashadi. Ba’zida bu ishlamaydi, masalan:
Ko‘p kod uslubi qo‘llanmalari har bir bayonotdan so‘ng nuqta-vergul qo‘yish kerakligini ta’kidlaydi.
Qavslar {...}
va ular bilan sintaksis konstruksiyalari (masalan, sikllar) keyin nuqta-vergul qo‘yish talab qilinmaydi:
... Ammo agar biz "qo‘shimcha" nuqta-vergul qo‘ysak, bu xato bo‘lmaydi. U e’tiborga olinmaydi.
Qattiq Rejim
Zamonaviy JavaScript funksiyalarini to‘liq ishlatish uchun, skriptlarimizni "use strict" bilan boshlashimiz kerak.
Bu direktiva skriptning yuqori qismida yoki funksiya tanasining boshida bo‘lishi kerak.
"Use strict"siz, hamma narsa ishlaydi, lekin ba’zi funksiyalar eski usulda, "moslashuvchan" tarzda ishlaydi. Zamonaviy xulq-atvorni afzal ko‘ramiz.
Ba’zi zamonaviy til xususiyatlari (masalan, kelajakda o‘rganadigan klasslar) qattiq rejimni yashirincha yoqadi.
O‘zgaruvchilar
O‘zgaruvchilarni quyidagicha e’lon qilish mumkin:
let
const
(o‘zgarmas, o‘zgartirilishi mumkin emas)var
(eski uslub, keyinroq ko‘ramiz)
O‘zgaruvchi nomi quyidagi belgilarni o‘z ichiga olishi mumkin:
- Harflar va raqamlar, lekin birinchi belgi raqam bo‘lmasligi kerak.
$
va_
belgilari normal hisoblanadi, harflar bilan teng.- Lotin alifbosidan tashqari alifbolar va hierogliflar ham ruxsat etiladi, ammo odatda ishlatilmaydi.
O‘zgaruvchilar dinamik tarzda tiplanadi. Ular har qanday qiymatni saqlashlari mumkin:
8 ta ma’lumotlar turi mavjud:
number
– o‘nlik va butun sonlar uchun,bigint
– ixtiyoriy uzunlikdagi butun sonlar uchun,string
– matnlar uchun,boolean
– mantiqiy qiymatlar:true/false
,null
– yagona qiymatnull
bo‘lgan tip, "bo‘sh" yoki "mavjud emas" degan ma’noni bildiradi,undefined
– yagona qiymatundefined
bo‘lgan tip, "tayinlanmagan" degan ma’noni bildiradi,object
vasymbol
– murakkab ma’lumotlar tuzilmalari va noyob identifikatorlar uchun, biz hali ularni o‘rganganimiz yo‘q.
typeof
operatori qiymat uchun turini qaytaradi, ikki istisno bilan:
O‘zaro Ta’sir
Biz brauzerni ish muhiti sifatida ishlatmoqdamiz, shuning uchun asosiy UI funksiyalari:
prompt(question, [default])
– savol beradi va foydalanuvchi kiritgan qiymatni yoki “bekor qilish”ni tanlasanull
qaytaradi.confirm(question)
– savol beradi va Ok va Bekor qilish orasidan tanlashni taklif qiladi. Tanlovtrue/false
sifatida qaytariladi.alert(message)
– xabar chiqaradi.
Bu funksiyalar modal bo‘lib, kod ijrosini to‘xtatadi va foydalanuvchini javob berishgacha sahifa bilan o‘zaro ta’sir qilishdan to‘xtatadi.
Masalan:
Operatorlar
JavaScript quyidagi operatorlarni qo‘llab-quvvatlaydi:
Arifmetik
Oddiy: * + - /
, shuningdek, %
qolganini olish va **
sonning kuchi uchun.
Ikki operandlardan biri matn bo‘lsa, +
operatori matnlarni birlashtiradi. Agar operandlardan biri matn bo‘lsa, boshqa operand ham matnga o‘zgartiriladi:
Tayinlash
Oddiy tayinlash: a = b
va birlashtirilganlar, masalan: a *= 2
.
Bitwise
Bitwise operatorlar 32-bitli butun sonlar bilan pastki darajada ishlaydi: kerak bo‘lganda hujjatlarni ko‘ring.
Shartli
Faqat bitta operator uchta parametrga ega: cond ? resultA : resultB
. Agar cond
haqiqiy bo‘lsa, resultA
qaytariladi, aks holda resultB
.
Mantiqiy Operatorlar
- Mantiqiy AND
&&
va OR||
qisqa devorlarni baholaydi va to‘xtagan qiymatini qaytaradi (har doimtrue/false
bo‘lishi shart emas). - Mantiqiy NOT
!
operandni boolean turiga o‘zgartiradi va qarama-qarshi qiymatini qaytaradi.
Nullish Coalescing Operator
??
operatori ta’riflangan qiymatni ro‘yxatdan tanlash usulini taqdim etadi. a ?? b
natijasi a
bo‘ladi, agar a
null/undefined
bo‘lmasa, aks holda b
.
Taqqoslash
Qiymatlarni taqqoslash ==
turdagi qiymatlar turga o‘zgartiradi (null va undefined bir-biriga teng va boshqa hech narsa bilan teng emas), shuning uchun bu teng:
Boshqa taqqoslashlar ham sonlarga o‘zgartiriladi.
Qattiq taqqoslash operatori ===
o‘zgartirishni amalga oshirmaydi: turli tiplardagi qiymatlar har doim turli qiymatlar demakdir.
null
va undefined
maxsus qiymatlar: ular ==
orqali teng bo‘ladilar va boshqa hech narsaga teng emas.
Kattaroq/kiçikroq taqqoslashlar matnlarni har bir belgini taqqoslaydi, boshqa turlar sonlarga o‘zgartiriladi.
Boshqa Operatorlar
Boshqa operatorlar ham mavjud, masalan, vergul operatori.
Sikllar
Biz 3 turdagi sikllarni ko‘rdik:
for(let...)
siklida e’lon qilingan o‘zgaruvchi faqat sikl ichida ko‘rinadi. Ammo let
ni tashlab qo‘yish va mavjud o‘zgaruvchini qayta ishlatishimiz mumkin.
break
/continue
direktivalari butun sikldan/chora o‘tish uchun ruxsat beradi. Qulupnay sikllardan chiqish uchun tegishli yorliqlarni ishlating.
Keyinchalik biz ob’ektlar bilan ishl
ash uchun boshqa sikllarni o‘rganamiz.
“switch” Qurilmasi
“switch” qurilmasi bir nechta if
tekshiruvlarini almashtirishi mumkin. Bu ===
(qattiq tenglik) orqali taqqoslashni amalga oshiradi.
Masalan:
Funksiyalar
Biz JavaScript-da funksiyani yaratishning uchta usulini ko‘rdik:
- Funksiya E’lon Qilish: asosiy kod oqimida funksiya
- Funksiya Ifodasi: ifoda kontekstida funksiya
- Arrow Funksiyalar:
Funksiyalar lokal o‘zgaruvchilarga ega bo‘lishi mumkin: ularning tanasi yoki parametrlar ro‘yxatida e’lon qilingan. Bunday o‘zgaruvchilar faqat funksiya ichida ko‘rinadi.
Parametrlar default qiymatga ega bo‘lishi mumkin: function sum(a = 1, b = 2) {...}
.
Funksiyalar har doim biror narsani qaytaradi. Agar return
bayonoti bo‘lmasa, natija undefined
bo‘ladi.