Ma'lumot turlari

Satrlar

Matnli ma'lumot JavaScript'da satr (string) sifatida saqlanadi. Bitta belgi uchun alohida tur yo'q โ€” hamma matn satrdir. Ushbu darsda satrlar bilan ishlashni chuqur o'rganamiz.

Tirnoq turlari

JavaScript'da satrni uch xil tirnoq bilan yozish mumkin:

Qo'shtirnoq va bir tirnoq amalda bir xil ishlaydi. Teskari tirnoq esa qo'shimcha imkoniyat beradi.

tirnoqlar.js
// natija shu yerda chiqadi

Shablon satrlar (template literals)

Teskari tirnoq (backtick) bilan yozilgan satrlar shablon satrlar deyiladi. Ular ichiga ${...} orqali istalgan ifoda joylashtirish mumkin โ€” o'zgaruvchilar va hisob-kitoblar.

Quyida shablon satr sintaksisi ko'rsatilgan (teskari tirnoq belgisi \` bilan ifodalangan):

let ism = "Ali";
let yosh = 25;

// ${...} ichida o'zgaruvchi va ifoda ishlaydi
let xabar = \`Salom, ${ism}! Sizga ${yosh} yosh.\`;
// natija: "Salom, Ali! Sizga 25 yosh."

let natija = \`2 + 2 = ${2 + 2}\`;
// natija: "2 + 2 = 4"

Shablon satrlarning yana bir foydasi โ€” ular ko'p qatorli bo'la oladi. Oddiy tirnoqlarda satrni bir necha qatorga bo'lish mumkin emas, teskari tirnoqda esa mumkin. Quyidagi interaktiv misolda oddiy birlashtirish orqali xuddi shu natijani ko'ramiz:

birlashtirish.js
// natija shu yerda chiqadi
Amalda satr yaratganda deyarli har doim shablon satrlar (backtick) ishlatiladi, chunki ${...} bilan yozish + bilan birlashtirishdan ancha o'qilishi oson.

Maxsus belgilar

Ba'zi belgilarni to'g'ridan-to'g'ri yozib bo'lmaydi, ular uchun maxsus belgilar (escape ketma-ketligi) bor. Ular teskari chiziq \ bilan boshlanadi:

maxsus-belgi.js
// natija shu yerda chiqadi
Agar satr bir tirnoqda bo'lsa, ichidagi qo'shtirnoqni eskeyplashga hojat yo'q: 'U "salom" dedi'. Va aksincha. Bu ko'pincha kodni tozaroq qiladi.

Uzunlik va belgilarga murojaat

Satr uzunligini length xususiyati beradi. Diqqat: bu metod emas, xususiyat โ€” qavs qo'yilmaydi (str.length, str.length() emas).

Alohida belgiga ikki yo'l bilan murojaat qilinadi: to'rtburchak qavs [...] yoki at(...) metodi orqali. Indekslar 0 dan boshlanadi.

uzunlik.js
// natija shu yerda chiqadi

at() ning ustunligi โ€” manfiy indeks bilan oxiridan sanash. [] bilan bu ishlamaydi: matn[-1] โ†’ undefined, matn.at(-1) esa oxirgi belgini beradi.

Katta va kichik harflar

Satrni butunlay katta yoki kichik harflarga o'girish uchun ikki metod bor. Ular yangi satr qaytaradi, aslini o'zgartirmaydi (satrlar o'zgarmas):

harflar.js
// natija shu yerda chiqadi

Qism satr izlash: indexOf, includes

Satr ichida boshqa satrni izlash uchun bir nechta metod bor. indexOf(qism) โ€” qism satr birinchi uchragan indeksni qaytaradi, topilmasa -1 qaytaradi:

indexof.js
// natija shu yerda chiqadi

Ko'pincha shunchaki "bormi yoki yo'q" degan javob kerak bo'ladi. Buning uchun qulayroq metodlar bor:

includes.js
// natija shu yerda chiqadi
includes, startsWith, endsWith to'g'ridan-to'g'ri true/false qaytargani uchun shartlarda indexOfdan qulayroq. Zamonaviy kodda ularni afzal ko'ring.

Qism satrni ajratish: slice, substring

Satrdan bir qismini ajratib olish uchun asosan uch metod bor. Eng ko'p ishlatiladigani va tavsiya etilgani โ€” slice(boshi, oxiri). U boshidan oxirigacha (oxiri kirmaydi) qismni qaytaradi:

slice.js
// natija shu yerda chiqadi

substring(start, end) ham o'xshash, lekin manfiy indekslarni 0 deb qabul qiladi va argumentlar tartibi teskari bo'lsa ularni almashtiradi. substr(start, uzunlik) esa eskirgan (deprecated) โ€” ikkinchi argument uzunlik, imkon boricha ishlatmang.

substring.js
// natija shu yerda chiqadi
Uchtasidan sliceni yodda saqlash yetarli โ€” u eng moslashuvchan (manfiy indekslar bilan) va massivlarda ham xuddi shunday ishlaydi.

Satrlarni taqqoslash

Satrlar belgilarning ichki raqamli kodlari (Unicode) bo'yicha taqqoslanadi. Shuning uchun taqqoslash ba'zan kutilmagan natija beradi โ€” masalan, barcha katta harflar kichik harflardan "kichik" hisoblanadi:

taqqoslash.js
// natija shu yerda chiqadi
Turli tildagi harflarni to'g'ri (til qoidalari bo'yicha) taqqoslash uchun str.localeCompare(str2) ishlatiladi. U -1, 0 yoki 1 qaytaradi va milliy alifbolarni to'g'ri tartiblaydi.

Xulosa