Рядки
Last updated
Last updated
Рядок - це індексований набір символів (від нуля або більше символів), взятих в одинарні або подвійні лапки.
Індексація елементів рядка починається з нуля. Наприклад, в рядку "JavaScript" літера "J" стоїть на позиції з індексом 0, а "t" - під індексом 9.
У рядку неможливо змінити тільки один символ. Рядок можна створити новий змінений і перезаписати весь повністю
У операціях з рядками оператор + здійснює обʼєднання рядків. Цю операцію називають конкатенація, або додавання рядків.
При операції конкатенації відбувається приведення даних до рядка, а потім їх "склеювання" (або зшиття) у зазначеному порядку.
Утім важливо зважати на порядок операндів, бо від цього залежить до чого вони будуть приведені (числа чи рядка). Скажімо, якщо перших два операнди можна привести до числа, то спочатку відбудеться математична операція додавання, а потім вже конкатенація.
В останньому прикладі відбулася математична операція додавання для перших двох чисел 1 і 2, після чого число 3 було перетворено у рядок "3" і зшито з рядком "4".
Шаблонні рядки - це альтернатива конкатенації зі зручнішим синтаксисом. Шаблонний рядок беруть у зворотні `` (косі) лапки, замість подвійних або одинарних. Можна підставляти у шаблонний рядок значення змінної передавши її в фігурних дужках після символу долара ${вираз}. Це спрощує код, бо прибираються зайві лапки та оператори додавання.
Розглянемо далі однакову задачу виконану конкатенацією і шаблонним рядком.
У кожного рядка є вбудовані властивості та методи.
Щоб дізнатися довжину рядка (тобто кількість його символів) використовують вбудовану властивість length. Значення довжини отримують звернувшися до властивості через крапку після назви змінної в які міститься рядок.
Методи рядка toLowerCase() і toUpperCase() повертають новий рядок відповідно у нижньому і верхньому регістрі, не змінюючи оригінальний рядок.
Великі та маленькі символи мають різний машинний код. Тобто рядки де хоч один символ відрізняється за регістрами не будуть рівними.
На практиці часто виникає задача, коли потрібно робити пошук рядка в масиві або обʼєкті, і тільки різниця в регістрі одного символу вже не покаже збігу, хоча по смислу це саме те, що треба.
Для розв'язання цієї задачі два порівнювані рядки приводять до однакового регістру і після цього порівнюють. Це називають "нормалізацією".
Скажімо в базі даних у нас зберігається змінна зі значенням "GOOGLE", а користувач у полі форми пошуку ввів запит "gOogLe". Тоді нормалізація і порівняння на збіг рядків з ігноруванням регістру виглядатиме так.
Метод indexOf() повертає позицію (індекс), на якій знаходить перший збіг підрядка або -1, якщо нічого не знайдено.
Метод includes() перевіряє, чи міститься підрядок в рядку, повертає буль - true, якщо міститься, і false - коли не міститься. Регістр символів в рядку і підрядку має значення, оскільки, як було зазначено раніше, наприклад, літера "a" не дорівнює літері "А" тощо.
Метод endsWith() перевіряє чи завершується рядок символами (підрядком), зазначеними в дужках. Повертає true або false.
Метод replace() повертає новий рядок, в якому перший збіг із підрядком замінюється на нове значення.
Метод replaceAll() повертає новий рядок, в якому всі збіги із підрядком замінюються на нове значення.
Метод рядків slice (startIndex, endIndex) використовують для створення копії частини або всього рядка. Він робить копію елементів рядка від startIndex і до endIndex, але не включно. Метод повертає новий рядок, не змінюючи оригінал.