Гузариш ба мундариҷа
Мавзӯи 9 аз 16
Назария

Сатрҳо

Ин барои чӣ лозим аст

Матн дар ҳама ҷо: номҳо, паёмҳо дар чат, суроғаҳои саҳифаҳо, паролҳо, ҷустуҷӯ. Лозим аст санҷед, ки дар паём калимаи манъшуда ҳаст ё не, фосилаҳои зиёдатиро дар майдони воридот бураед, ҳарфи аввалро калон кунед, сатрро ба калимаҳо ҷудо кунед. Барои ҳамаи ин сатрҳо усулҳо (методҳо) доранд — функсияҳои дарунсохт, ки бо нуқта даъват мешаванд: text.toUpperCase().

Дарозӣ ва аломатҳои алоҳида

const word = "JavaScript";
console.log(word.length);  // 10
console.log(word[0]);      // J   — рақамгузорӣ аз сифр!
console.log(word[4]);      // S
console.log(word.at(-1));  // t   — at(-1): аломати охирин
console.log(word[word.length - 1]); // t — ҳамон бо тарзи кӯҳна

Аломатҳо аз сифр рақамгузорӣ мешаванд: сатри дарозиаш 10 рақамҳо (индексҳо)-и аз 0 то 9 дорад.

Сатрҳо тағйирнопазиранд: word[0] = "j" ҳеҷ чизро иваз намекунад. Ҳамаи усулҳо сатри нав бармегардонанд, вале сатри аслӣ ҳамон мемонад.

Ҳарфҳои калон ва хурд

const city = "Dushanbe";
console.log(city.toUpperCase()); // DUSHANBE
console.log(city.toLowerCase()); // dushanbe
console.log(city);               // Dushanbe — аслӣ иваз нашуд

Калон кардани ҳарфи аввал: s[0].toUpperCase() + s.slice(1).

Ҷустуҷӯ

const text = "Ман JavaScript ва HTML меомӯзам";
console.log(text.includes("Java"));    // true  — зерсатр ҳаст
console.log(text.startsWith("Ман"));   // true
console.log(text.endsWith("CSS"));     // false
console.log(text.indexOf("HTML"));     // 18    — аз куҷо сар мешавад
console.log(text.indexOf("Python"));   // -1    — ёфт нашуд

Ҷустуҷӯ ба ҳарфҳои калон/хурд ҳассос аст: "Java".includes("java") → false. Барои ҷустуҷӯ бе назардошти ин, ҳарду сатрро ба ҳарфҳои хурд оред.

Буридани порча: slice

slice(оғоз, охир) қисми сатрро аз оғоз то охир (бе дохил кардани он) бармегардонад:

const s = "JavaScript";
console.log(s.slice(0, 4));  // Java
console.log(s.slice(4));     // Script — то охир
console.log(s.slice(-3));    // ipt    — се охирин

Иваз, буридан, такрор

console.log("гурба ва гурба".replace("гурба", "саг"));    // саг ва гурба — танҳо аввалин
console.log("гурба ва гурба".replaceAll("гурба", "саг")); // саг ва саг — ҳама
console.log("   салом  ".trim());                         // "салом" — бе фосилаҳо дар канорҳо
console.log("ҳа".repeat(3));                              // ҳаҳаҳа
console.log("7".padStart(3, "0"));                        // 007 — аз чап то дарозии 3 пур кардан

Ҷудо кардан ва пайвастан: split ва join

const csv = "себ,банан,гелос";
const fruits = csv.split(",");
console.log(fruits);
console.log(fruits.length);
console.log(fruits.join(" + "));

Натиҷа:

["себ","банан","гелос"]
3
себ + банан + гелос

split сатрро ба массив-и порчаҳо табдил медиҳад (дар бораи массивҳо — дар мавзӯъҳои оянда), ва join массивро боз ба сатр мепайвандад. split("") ба аломатҳои алоҳида ҷудо мекунад.

Гузаштан аз аломатҳо

let vowels = 0;
for (const ch of "programming") {
  if ("aeiou".includes(ch)) vowels++;
}
console.log(vowels);

Натиҷа:

3

for (const ch of сатр) бо навбат ҳар аломатро ба ch мегузорад.

Аломатҳои махсус

Дар дохили сатр хати моили баръакс \ аломати махсусро оғоз мекунад: \n — гузариш ба сатри нав, \t — табулятсия, \" — нохунак дар дохили сатр бо ҳамин гуна нохунакҳо, \\ — худи хати моили баръакс.

console.log("Сатри 1\nСатри 2");

Натиҷа:

Сатри 1
Сатри 2

Дар дохил чӣ гуна кор мекунад

Сатр ҳамчун пайдарпайии аломатҳо дар рамзгузории UTF-16 нигоҳ дошта мешавад. Муқоисаи "a" < "b" аз рӯи кодҳои аломатҳо мегузарад: "a".charCodeAt(0) → 97. Бинобар ин "Z" < "a" — ҳақиқат аст (кодҳои ҳарфҳои калон хурдтаранд), ва ҷобаҷокунии калимаҳо бо ҳарфҳои махсус (ҳ, ӯ, ҷ) метавонад ҳайрон кунад: кодҳои онҳо аз алифбои асосӣ дуранд.

Аз сабаби тағйирнопазирӣ ҳар даъвати усул сатри нав месозад. Агар дар сатр чизеро «иваз кардан» лозим бошад, натиҷаро ҳатман нигоҳ медоранд: name = name.trim();.

Хатоҳои маъмул

  1. Усул сатрро иваз намекунад. name.toUpperCase(); бе бахшидан ҳеҷ кор намекунад. Лозим аст name = name.toUpperCase(); ё натиҷаро фавран истифода баред.
  2. Қавсҳо фаромӯш шуданд. text.toUpperCase бе () — худи функсия аст, на натиҷа.
  3. length() бо қавсҳо. length — хосият аст, на усул: text.length.
  4. Хато ба як дар slice. Охир дохил намешавад: "abc".slice(0, 2) → "ab".
  5. replace танҳо вохӯрии аввалро иваз мекунад. Барои ҳама — replaceAll.

Ёддошт

Чӣ Чӣ тавр
Дарозӣ s.length
Аломат s[0], s.at(-1)
Ҳарфҳо s.toUpperCase(), s.toLowerCase()
Ҳаст ё не s.includes("x"), startsWith, endsWith
Дар куҷо s.indexOf("x") → рақам ё -1
Порча s.slice(аз, то)
Иваз s.replace(a, b), s.replaceAll(a, b)
Фосилаҳо дар канорҳо s.trim()
Такрор, пуркунӣ s.repeat(3), s.padStart(3, "0")
Ба массив ва баръакс s.split(","), arr.join(", ")

Ҳарфҳои аввал

Осон+10 XP

Функсияи initials(fullName)-ро нависед. Вай ном ва насабро бо як фосила мегирад ва ҳарфҳои аввалро бо ҳарфҳои калон ва нуқтаҳо бармегардонад: "anna ivanova" → "A.I.".

initials("Anna Ivanova")   → "A.I."
initials("timur rakhimov") → "T.R."

Барои ҳал кардани масъалаҳо коннекторро пайваст кун

Коди масъалаҳо дар компютери худат иҷро мешавад — ин аз браузер тезтар ва боэътимодтар аст. Барои ин барномаи ройгони коннектори CodeWithMe лозим аст. Онро як бор пайваст кардан кифоя аст.

Коннекторро дар ин компютер ҷустуҷӯ мекунем…

  1. 1
    Коннекторро барои системаи худ (Windows, macOS ё Linux) зеркашӣ кун.Зеркашии коннекторДар саҳифаи зеркашӣ файлеро интихоб кун, ки дар номаш системаи ту ҳаст, масалан windows-amd64.
  2. 2Онро иҷро кун ва ҷузвдонеро интихоб кун, ки ҳалҳоят дар он ҷо меистанд. Python ва Node.js-ро ӯ худаш ҳангоми зарурат ба он ҷо мегузорад.
  3. 3
    Дар поён рамзи 6-рақамаро ворид кун — он дар равзанаи коннектор навишта шудааст («Рамз барои сайти CodeWithMe»). Агар браузер дар бораи дастрасӣ ба шабакаи маҳаллӣ пурсад — иҷозат деҳ.

Коннектор кушода аст (рамзи манбаъ дар GitHub), танҳо дар компютери ту кор мекунад ва кодро танҳо пас аз ворид кардани рамзи пайвастшавӣ иҷро мекунад.