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.alert(message)messageni chiqarish.
Bu funksiyalarning barchasi modal, ular kod bajarilishini toâxtatadi va tashrif buyuruvchi javob berguncha sahifa bilan oâzaro taâsirni oldini oladi.
Masalan:
let userName = prompt("Ismingiz?", "Alice");
let isTeaWanted = confirm("Choy istaysizmi?");
alert("Tashrif buyuruvchi: " + userName); // Alice
alert("Choy kerak: " + isTeaWanted); // true
Batafsil: Foydalanuvchi bilan muloqot: alert, prompt, confirm.
Operatorlar
JavaScript quyidagi operatorlarni qoâllab-quvvatlaydi:
- Arifmetik
-
Oddiy:
* + - /, shuningdek qoldiq uchun%va sonning darajasi uchun**.Ikkilik plus
+satrlarni birlashtiradi. Va agar operandlardan biri satr boâlsa, ikkinchisi ham satrga aylantiriladi:alert( '1' + 2 ); // '12', satr alert( 1 + '2' ); // '12', satr - Tayinlashlar
-
Oddiy tayinlash:
a = bva birlashtirilganlara *= 2kabi. - Bitli
-
Bitli operatorlar eng past, bit darajasida 32-bitli butun sonlar bilan ishlaydi: kerak boâlganda hujjatlarga qarang.
- Shartli
-
Uchta parametrli yagona operator:
cond ? resultA : resultB. Agarcondhaqiqiy boâlsa,resultAni qaytaradi, aks holdaresultBni. - Mantiqiy operatorlar
-
Mantiqiy VA
&&va YOKI||qisqa tutashuv baholashini amalga oshiradi va keyin toâxtagan joyda qiymatni qaytaradi (majburiy ravishdatrue/falseemas). Mantiqiy EMAS!operandni boolean tipiga aylantiradi va teskari qiymatni qaytaradi. - Nullish coalescing operatori
-
??operatori oâzgaruvchilar roâyxatidan aniqlangan qiymatni tanlash usulini taqdim etadi.a ?? bning natijasinull/undefinedboâlmagunchaa, keyinb. - Taqqoslashlar
-
Turli tiplar qiymatlari uchun tenglik tekshiruvi
==ularni raqamga aylantiradi (nullvaundefineddan tashqari, ular bir-biriga teng va boshqa hech narsaga teng emas), shuning uchun bular teng:alert( 0 == false ); // true alert( 0 == '' ); // trueBoshqa taqqoslashlar ham raqamga aylantiradi.
Qatâiy tenglik operatori
===aylantirishni qilmaydi: turli tiplar uning uchun har doim turli qiymatlarni anglatadi.nullvaundefinedqiymatlari maxsus: ular bir-biriga==teng va boshqa hech narsaga teng emas.Katta/kichik taqqoslashlar satrlarni belgi-belgiga solishtiradi, boshqa tiplar raqamga aylantiriladi.
- Boshqa operatorlar
-
Vergul operatori kabi bir nechtasi bor.
Batafsil: Asosiy operatorlar, matematika, Taqqoslashlar, Mantiqiy operatorlar, Nullab birlashtirish operatori '??'.
Tsikllar
-
Biz 3 turdagi tsiklni koârib chiqdik:
// 1 while (condition) { ... } // 2 do { ... } while (condition); // 3 for(let i = 0; i < 10; i++) { ... } -
for(let...)tsiklida eâlon qilingan oâzgaruvchi faqat tsikl ichida koârinadi. Lekin bizletni tashlab qoâyib, mavjud oâzgaruvchini qayta ishlatishimiz ham mumkin. -
break/continuedirektivlari butun tsikl/joriy iteratsiyadan chiqishga imkon beradi. Ichma-ich tsikllarni buzish uchun yorliqlardan foydalaning.
Batafsil: Tsikllar: while va for.
Keyinroq obyektlar bilan ishlash uchun koâproq tsikl turlarini oârganamiz.
âswitchâ konstruksiyasi
âswitchâ konstruksiyasi bir nechta if tekshiruvini almashtirishi mumkin. U taqqoslash uchun === (qatâiy tenglik) dan foydalanadi.
Masalan:
let age = prompt("Yoshingiz?", 18);
switch (age) {
case 18:
alert("Ishlamaydi"); // prompt natijasi satr, raqam emas
break;
case "18":
alert("Bu ishlaydi!");
break;
default:
alert("Yuqoridagilardan biriga teng bo'lmagan istalgan qiymat");
}
Batafsil: "switch" ifodasi.
Funksiyalar
JavaScript-da funksiya yaratishning uchta usulini koârib chiqdik:
-
Funksiya eâloni: asosiy kod oqimidagi funksiya
function sum(a, b) { let result = a + b; return result; } -
Funksiya ifodasi: ifoda kontekstidagi funksiya
let sum = function (a, b) { let result = a + b; return result; }; -
Arrow funksiyalar:
// o'ng tomonda ifoda let sum = (a, b) => a + b; // yoki { ... } bilan ko'p qatorli sintaksis, bu yerda return kerak: let sum = (a, b) => { // ... return a + b; }; // argumentlarsiz let sayHi = () => alert("Salom"); // bitta argument bilan let double = (n) => n * 2;
- Funksiyalar mahalliy oâzgaruvchilarga ega boâlishi mumkin: uning tanasida yoki parametr roâyxatida eâlon qilinganlar. Bunday oâzgaruvchilar faqat funksiya ichida koârinadi.
- Parametrlar standart qiymatlarga ega boâlishi mumkin:
function sum(a = 1, b = 2) {...}. - Funksiyalar har doim biror narsa qaytaradi. Agar
returniborasi boâlmasa, natijaundefinedboâladi.
Batafsil: Funksiyalar, Arrow funksiyalar, asoslar ga qarang.
Davomi bor
Bu JavaScript xususiyatlarining qisqacha roâyxati edi. Hozircha biz faqat asoslarni oârgandik. Qoâllanmaning davomida siz JavaScript-ning koâproq maxsus va ilgâor xususiyatlarini topasiz.
Izohlar
<code>yorlig'ini ishlating, bir nechta satrlar uchun - ularni<pre>yorlig'i bilan o'rab qo'ying, 10 satrdan ortiq bo'lsa - sandbox (plnkr, jsbin, codepenâ¦)