JavaScript'da matnlar (Strings), template literals, string metodlari (o'zgartirish, qidirish, bo'laklash), immutability prinsipi hamda amaliy mashq va testlar.
String — matn ma'lumotini ifodalaydigan data type. Bu bobda string yaratish, birlashtirish va uning eng ko'p ishlatiladigan metodlarini o'rganamiz.
String — qo'shtirnoq (", ') yoki backtick (`) ichiga olingan matn.
script.jsJavaScriptlet name1 = "Ali";let name2 = 'Vali';let name3 = `Karim`;
💡 Key Idea
Uchala usul ham string yaratadi, lekin backtick (`) qo'shimcha imkoniyat — template literalni beradi.
Backtick yordamida string ichiga variable va ifodalarni to'g'ridan-to'g'ri joylashtirish mumkin.
script.jsJavaScriptlet name = "Ali";let age = 25;let message = `Salom, mening ismim ${name} va men ${age} yoshdaman.`;console.log(message);
| Usul | Misol |
|---|---|
+ operator | "Salom, " + name |
| Template literal | `Salom, ${name}` |
🔥 Important
Template literal ko'p qatorli string yaratishga ham imkon beradi:
script.jsJavaScriptlet text = `Birinchi qatorIkkinchi qator`;
script.jsJavaScriptlet word = "JavaScript";console.log(word.length); // 10console.log(word[0]); // "J"console.log(word.at(-1)); // "t" (oxirgi belgi)
💡 Key Idea
.at(-1) — zamonaviy usul, oxirgi belgiga to'g'ridan-to'g'ri murojaat qilish uchun ishlatiladi.
| Metod | Vazifasi | Misol |
|---|---|---|
toUpperCase() | Katta harfga o'tkazadi | "salom".toUpperCase() → "SALOM" |
toLowerCase() | Kichik harfga o'tkazadi | "SALOM".toLowerCase() → "salom" |
trim() | Bosh/oxiridagi bo'shliqni olib tashlaydi | " hi ".trim() → "hi" |
replace() | Birinchi mos qismni almashtiradi | "a-b".replace("-", "_") → "a_b" |
replaceAll() | Barcha mos qismlarni almashtiradi | "a-b-c".replaceAll("-", "_") → "a_b_c" |
script.jsJavaScriptlet text = " Salom Dunyo ";console.log(text.trim()); // "Salom Dunyo"console.log(text.toUpperCase()); // " SALOM DUNYO "
| Metod | Qaytaradi |
|---|---|
includes(str) | true / false |
indexOf(str) | Index (topilmasa -1) |
startsWith(str) | true / false |
endsWith(str) | true / false |
script.jsJavaScriptlet email = "user@example.com";console.log(email.includes("@")); // trueconsole.log(email.endsWith(".com")); // trueconsole.log(email.indexOf("@")); // 4
| Metod | Vazifasi |
|---|---|
slice(start, end) | Belgilangan oraliqni qaytaradi |
split(separator) | Stringni array'ga bo'ladi |
concat() | Stringlarni birlashtiradi |
script.jsJavaScriptlet sentence = "JavaScript ajoyib til";console.log(sentence.slice(0, 10)); // "JavaScript"console.log(sentence.split(" ")); // ["JavaScript", "ajoyib", "til"]
split(" ") — stringni bo'sh joy bo'yicha alohida so'zlarga bo'lib, array qilib qaytaradi.
🔗 Connection
split() natijasi array bo'lgani uchun, Chapter 7'da o'rgangan barcha array metodlarini unga qo'llash mumkin.
String'lar JavaScript'da immutable (o'zgarmas) — ya'ni mavjud stringni to'g'ridan-to'g'ri o'zgartirib bo'lmaydi, faqat yangisini yaratish mumkin.
script.jsJavaScriptlet word = "salom";word[0] = "S";console.log(word); // "salom" — o'zgarmadi
⚠️ Common Mistake
Stringni array kabi index orqali o'zgartirishga urinish — bu hech qanday xatolik bermaydi, lekin shunchaki ishlamaydi.
To'g'ri yechim:
script.jsJavaScriptlet word = "salom";word = "S" + word.slice(1);console.log(word); // "Salom"
Task:
Foydalanuvchi ismini oling va uni katta harflarga o'tkazib chiqaring.
Required Concepts:
toUpperCase()name.toUpperCase() ishlating.Task:
Berilgan gapdagi so'zlar sonini hisoblang:
script.jsJavaScriptlet sentence = "JavaScript o'rganish juda qiziqarli";
Required Concepts:
split()lengthsentence.split(" ").length dan foydalaning.Task:
Berilgan stringning palindrom (old va orqadan bir xil o'qiladigan) ekanligini tekshiradigan function yozing.
script.jsJavaScriptisPalindrome("dod"); // trueisPalindrome("olma"); // false
Required Concepts:
split()reverse() (array metodi)join()reverse() qiling, keyin qayta stringga qaytarib solishtiring.script.jsJavaScriptlet str = "Salom";console.log(str.length);console.log(str[10]);
🧠 Think first! Javobni ko'rishdan oldin kamida 30 soniya o'ylang.
<details> <summary>Answer</summary> 5 undefinedWhy?
str.length — "Salom" 5 ta belgidan iborat. str[10] — bunday index mavjud emas, shuning uchun JavaScript xatolik bermasdan undefined qaytaradi.
Quyidagi kodda muammo bor:
script.jsJavaScriptlet firstName = "Ali";let lastName = "Valiyev";let fullName = firstName + lastName;console.log(fullName); // "AliValiyev" kutilmagan
Your Task:
Yechim:
</details>script.jsJavaScriptlet fullName = firstName + " " + lastName;// yoki template literal bilan:let fullName2 = `${firstName} ${lastName}`;console.log(fullName); // "Ali Valiyev"
", ' yoki ` bilan yoziladi.`) variable va ifodalarni to'g'ridan-to'g'ri joylashtirishga imkon beradi.toUpperCase, trim, includes, slice, split.+ operatoridan ko'ra afzalroq.split() stringni array'ga aylantiradi.includes, startsWith, endsWith — qidirishning qulay usullari..at(-1) oxirgi belgini olishning zamonaviy usuli.script.jsJavaScriptlet str = "Salom Dunyo";str.length; // uzunlikstr.toUpperCase(); // katta harfstr.toLowerCase(); // kichik harfstr.trim(); // bo'shliqni olib tashlashstr.includes("Dunyo"); // qidirishstr.slice(0, 5); // bo'lak olishstr.split(" "); // array'ga aylantirish`${variable}`; // template literal
Mavzu bo‘yicha tushunchalaringizni interaktiv test orqali sinovdan o‘tkazing va natijalarni bilib oling.
Darslikda o‘rganilgan qoidalarga asosan real kod yozing, testlardan o‘tkazing va yechimlarni mustahkamlang.
Test Sinovi
Hali topshirilmagan (kamida 75% kerak)
Amaliy Masalalar
0 / 3 ta yechildi (kamida 75% kerak)
Dars sifati va mazmunini yaxshilash uchun o‘z haqqoniy bahoingizni qoldiring.
Mavzuni to‘liq o‘zlashtirish uchun test sinovi, amaliy kodlash va bog‘liq darslar
O‘z bilimingizni interaktiv test savollari orqali tekshiring va darhol xatolarni tahlil qiling.
Nazariyani real kod yozish bilan mustahkamlang, avtomatik testlardan o‘ting va XP to‘plang.
Kurs bo‘yicha keyingi va bog‘liq mavzular: