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:
"Salom"; - Bir tirnoq (apostrof):
'Salom'; - Teskari tirnoq (backtick): shablon satrlar uchun.
Qo'shtirnoq va bir tirnoq amalda bir xil ishlaydi. Teskari tirnoq esa qo'shimcha imkoniyat beradi.
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:
${...} 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:
\nโ yangi qatorga o'tish;\tโ tabulyatsiya (bo'sh joy);\\โ teskari chiziqning o'zi;\'va\"โ tirnoqning o'zi (satr ichida).
'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.
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):
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:
Ko'pincha shunchaki "bormi yoki yo'q" degan javob kerak bo'ladi. Buning uchun qulayroq metodlar bor:
includes(qism)โ qism satr bor bo'lsatrue, aks holdafalse;startsWith(qism)โ satr shu bilan boshlanadimi;endsWith(qism)โ satr shu bilan tugaydimi.
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:
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.
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:
str.localeCompare(str2) ishlatiladi. U -1, 0 yoki 1 qaytaradi va milliy alifbolarni to'g'ri tartiblaydi.Xulosa
- Satrlar uch tirnoqda yoziladi; teskari tirnoq (backtick) shablon satr va
${...}beradi; - Maxsus belgilar:
\n(yangi qator),\t(tab),\\; lengthโ uzunlik;[i]vaat(i)โ belgiga murojaat (atmanfiy indeksni qo'llaydi);toUpperCase/toLowerCaseโ harf o'lchamini o'zgartiradi;- Izlash:
indexOf, va qulayincludes/startsWith/endsWith; - Ajratish:
slice(tavsiya etiladi),substring, eskirgansubstr; - Satrlar Unicode kodi bo'yicha taqqoslanadi; milliy tartiblash uchun
localeCompare.