Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS об'єкт String

Введення до об'єкта String

String - це вбудований об'єкт у JavaScript, який представляє рядок символів. Рядки використовуються для зберігання текстових даних, що можуть бути відображені у текстовому форматі. На відміну від масивів, де кожен елемент зберігає одне значення, рядки зберігають послідовність символів.

Створення рядків

Існує кілька способів створити рядок в JavaScript. Один із них - використовувати літерали рядків:

const string1 = "Це рядок";
const string2 = 'Це теж рядок';
const string3 = `Це ще один рядок`;

Кожен з цих літералів представляє рядок. Вони можуть використовуватися взаємозамінно, але з `` можна виконувати інтерполяцію рядків - це коли ви вставляєте змінні безпосередньо в рядок. Наприклад:

const name = "Олексій";
const greetings = `Привіт, ${name}!`;
console.log(greetings); // Виведе: "Привіт, Олексій!"

Робота з рядками

Коли у вас є рядок, ви можете виконувати різноманітні операції: додавання рядків, доступ до окремих символів, пошук підрядків тощо.

Для додавання двох рядків можна використовувати оператор +:

const string1 = "Привіт, ";
const string2 = "світе!";
console.log(string1 + string2); // Виведе: "Привіт, світе!"

Для доступу до конкретного символу в рядку можна використовувати метод charAt() або квадратні дужки:

const text = "абрикос";
console.log(text.charAt(3)); // Виведе: "и"
console.log(text[3]); // Також виведе: "и"

Розширені можливості рядків

Рядки в JavaScript мають багато вбудованих методів, що допомагають виконувати різноманітні операції. Наприклад, метод substring() дозволяє витягти підрядок з поточного рядка:

const word = "парасолька";
const text = word.substring(2, 8);
console.log(text); // Виведе: "расоль"

Інший корисний метод - indexOf(), який повертає індекс першого входження підрядка:

const text = "Веселий, веселий день.";
console.log(text.indexOf("веселий")); // Виведе: 9

Операції з рядками

Рядки в JavaScript - це більше, ніж просто послідовності символів. Завдяки великій кількості методів, які надає об'єкт String, можливо виконувати ряд сложних операцій з рядками.

Конкатенація рядків

Однією з основних операцій з рядками є їх об'єднання, або конкатенація. Це можна зробити за допомогою оператора +:

const chunk1 = "Коли розум";
const chunk2 = " мовчить, говорить серце.";
const common = chunk1 + chunk2;
console.log(common); // Виведе: "Коли розум мовчить, говорить серце."

В цьому прикладі ми об'єднали два рядки, використовуючи оператор +. Результат - новий рядок, який є комбінацією двох попередніх.

Доступ до символів

Щоб отримати доступ до конкретного символу в рядку, можна використовувати метод charAt() або квадратні дужки:

const word = "циркуль";
console.log(word.charAt(4)); // Виведе: "у"
console.log(word[4]); // Також виведе: "у"

Тут ми отримали доступ до п'ятого символу в рядку (індексація починається з 0), використовуючи обидва доступних метода.

Пошук в рядку

Щоб знайти підрядок в межах більшого рядка, можна використовувати метод indexOf():

const sentence = "Сонце світить яскраво і високо.";
const position = sentence.indexOf("яскраво");
console.log(position); // Виведе: 11

У цьому прикладі ми шукали підрядок "яскраво" в рядку. Метод повернув позицію першого символу цього підрядка в більшому рядку.

Заміна підрядка

Щоб замінити частину рядка іншою стрічкою, можна використовувати метод replace():

const text = "Котик грає на гітарі.";
const new_text = text.replace("гітарі", "барабанах");
console.log(new_text); // Виведе: "Котик грає на барабанах."

Тут ми замінили підрядок "гітарі" на "барабанах", використовуючи метод replace().

Розбиття рядка

Щоб розбити рядок на масив підрядків за певним роздільником, можна використовувати метод split():

const phrase = "Яблуко, апельсин, банан";
const found = phrase.split(", ");
console.log(found); // Виведе: ["Яблуко", "апельсин", "банан"]

Тут ми розділили рядок на масив підрядків, використовуючи кому та пробіл як роздільники.

Порада:

Не змінюйте рядки напряму! Рядки в JavaScript є незмінними. Кожна операція, яка "змінює" рядок, насправді створює новий рядок.

Порада:

Уникайте використання String як конструктора. Це може призвести до плутанини, оскільки типи об'єктів та примітивів відрізняються.

Нотатка:

Будьте обережні при порівнянні рядків. Оператори порівняння (==, ===, <, >) розглядають рядки як чутливі до регістру. Для порівняння незалежно від регістру використовуйте методи toUpperCase або toLowerCase.

const str1 = "Привіт";
const str2 = "привіт";
console.log(str1.toLowerCase() === str2.toLowerCase());  // true

В цьому прикладі ми перетворили обидва рядки на нижній регістр перед порівнянням, щоб зробити їх незалежними від регістру.

Нотатка:

Будьте уважні з локалізацією: Якщо ваша програма працює з різними мовами, використовуйте методи, які є чутливими до локалізації, такі як localeCompare.

const str1 = "Straße";
const str2 = "Strasse";
console.log(str1.localeCompare(str2, 'de-DE'));  // -1

В цьому прикладі ми використовуємо localeCompare для порівняння двох німецьких слів в контексті німецької локалізації.

Синтаксис

let string = 'text';
let string = "text";
let string = `text`;
let string = new String("text");

Переглядачі

Переглядач

1

1

1

3

12

Переглядач

4.4

18

4

1

Переглядач

0.10.0

1.0

Приклади


Перетворення першої літери рядка в верхній регістр. Це корисно, наприклад, при форматуванні імен, або коли потрібно зробити текст більш читабельним.

У цьому прикладі метод charAt(0) вибирає перший символ рядка, а toUpperCase() перетворює його в верхній регістр. Метод slice(1) видаляє перший символ з оригінального рядка, а потім ми об'єднуємо обидва рядки.

function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase() + string.slice(1);
}

const name = "john";
const capitalizedName = capitalizeFirstLetter(name);
console.log(capitalizedName); // Виведе: "John"

Пошук підрядка в рядку та виведення контексту. Це може бути корисно, наприклад, при розробці пошукових функцій в текстових редакторах.

Метод indexOf() знаходить позицію підрядка subStr у рядку. Потім, використовуючи slice(), ми вирізаємо частину рядка навколо знайденого підрядка, додаючи контекст.

function findSubstringContext(str, subStr, context = 5) {
    const index = str.indexOf(subStr);
    if (index === -1) return "Substring not found";

    const start = Math.max(0, index - context);
    const end = Math.min(str.length, index + subStr.length + context);

    return str.slice(start, end);
}

const text = "The quick brown fox jumps over the lazy dog";
const context = findSubstringContext(text, "fox");
console.log(context); // Виведе: "quick brown fox jumps o"

Заміна заборонених слів в тексті на "зірочки". Це може бути корисно для автоматичної модерації тексту на форумах, у чатах тощо.

Тут ми використовуємо регулярні вирази (задані за допомогою RegExp) для знаходження заборонених слів у рядку, незалежно від регістра (за допомогою прапорця "gi"). Метод replace() замінює знайдені заборонені слова на рядок з "зірочок".

function censorText(text, forbiddenWords) {
    let censoredText = text;
    for (const word of forbiddenWords) {
        const regex = new RegExp(word, "gi");
        const replacement = '*'.repeat(word.length);
        censoredText = censoredText.replace(regex, replacement);
    }
    return censoredText;
}

const comment = "This is a nasty comment with bad words.";
const forbidden = ["nasty", "bad"];
const censoredComment = censorText(comment, forbidden);
console.log(censoredComment); // Виведе: "This is a ***** comment with *** words."

Методи

toString()
Перетворює об'єкт рядка на примітивний рядковий тип.
toLowerCase()
Перетворює всі символи рядка на малі літери.
toUpperCase()
Перетворює всі символи рядка на великі літери.
trim()
Видаляє пробільні символи з початку та кінця рядка.
valueOf()
Повертає примітивне значення рядка.
trimEnd()
Видаляє пробільні символи з кінця рядка.
trimStart()
Видаляє пробільні символи з початку рядка.
startsWith()
Перевіряє, чи починається рядок зазначеним підрядком.
toLocaleUpperCase()
Перетворює рядок у верхній регістр з урахуванням локалі.
substr()
Витягує підрядок із рядка, починаючи з вказаної позиції та має вказану довжину.
toLocaleLowerCase()
Перетворює всі символи рядка на нижній регістр, з урахуванням локальних особливостей мови.
substring()
Витягує підрядок з рядка між двома вказаними індексами.
match()
Здійснює пошук у рядку за допомогою регулярного виразу.
repeat()
Створює новий рядок шляхом повторення існуючого рядка задану кількість разів.
search()
Здійснює пошук заданого шаблону регулярного виразу в рядку.
padStart()
Додає символи на початок рядка до досягнення заданої довжини, повертаючи новий рядок.
split()
Перетворює рядок на масив підрядків, розділяючи його за вказаним роздільником.
replace()
Замінює зазначений фрагмент у рядку на інший рядок або результат виконання функції.
padEnd()
Перетворює рядок на вказану довжину, додаючи символи на кінець рядка.
concat()
Об'єднує два або більше рядків, утворюючи новий рядок.
constructor()
Створює новий рядковий об'єкт з вказаного значення.
slice()
Виділяє та повертає підрядок із заданого рядка, використовуючи початковий та кінцевий індекси.
endsWith()
Перевіряє, чи закінчується рядок певним підрядком.
includes()
Провіряє, чи міститься заданий підрядок у вихідному рядку.
localeCompare()
Порівнює рядок з іншим рядком, враховуючи локальні особливості мови.
fromCharCode()
Перетворює набір числових кодів Unicode у відповідний рядок.
indexOf()
Повертає індекс першого входження заданого підрядка в рядку.
lastIndexOf()
Знаходить індекс останнього входження заданого підрядка в рядку.
at()
Повертає символ за зазначеним індексом.
codePointAt()
Повертає числове значення Unicode для символу, розташованого на вказаній позиції в рядку.
charAt()
Повертає символ у рядку за вказаним індексом.
charCodeAt()
Повертає числове значення Unicode для символу, що стоїть на вказаній позиції у рядку.

Властивості

prototype
Створює та маніпулює рядками тексту в JavaScript.