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:
letconst(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:
numbersuzuvchi nuqta va butun sonlar uchun,bigintixtiyoriy uzunlikdagi butun sonlar uchun,stringsatrlar uchun,booleanmantiqiy qiymatlar uchun:true/false,null– bittanullqiymatli tip, “bo’sh” yoki “mavjud emas” ma’nosini bildiradi,undefined– bittaundefinedqiymatli tip, “tayinlanmagan” ma’nosini bildiradi,objectvasymbol– 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])questionso’rash va tashrif buyuruvchi kiritgan narsani yoki "bekor qilish"ni bossalarnullni qaytarish.confirm(question)questionso’rash va Ok va Bekor qilish o’rtasida tanlashni taklif qilish. Tanlovtrue/falsesifatida qaytariladi.