В якості типу JavaScript для подання тексту використовується рядок – незмінна впорядкована послідовність 16-бітних значень, кожне з яких, як правило, є символом Unicode.
Довжиною рядка є кількість 16-бітних значень, що в ньому знаходяться. Рядки та масиви в JavaScript використовують індексацію, що починається з 0. Порожній рядок – це рядок довжиною 0. Для подання одиночного 16-бітного значення слід використовувати рядок здовжиною 1.
JavaScript використовує кодування UTF-16 набору символів Unicode, а рядки JS є послідовностями 16-бітних значень без знаку. Найбільш часто використовувані символи з “основної багатомовної площини” мають кодові точки, що вміщаються в 16 біт та можуть бути подані одним елементом рядка. Символи з кодовими точками що не вміщаються в 16 біт кодуються у вигляді “сурогатної пари”.
Більшість методів маніпулювання рядками виначених у JS діють не на символах, а на їх 16 бітних значеннях. Втім з ES6 рядки є інтерпритуемими, та використання цикла for/of чи операції … призведе до проходу саме по дійсних символах.
- Рядкові літерали
- Керуючі послідовності в рядкових літералах
- Робота з рядками
- Шаблонні літерали
- Співставлення з шаблонами
Рядкові літерали
Шоб включити рядок в програму JS достатньо помісти символи рядка в середину співпадаючої пари одинарнх, подвійних чи зворотніх лапок. Символи подвійних чи зворотніх лапок можуть знаходитись в середині рядків обмежених символами одинарних і навпаки.
"" // Порожній рядок: містить нуль символів. ‘testing’ ”3.14" ‘ name="myform" ’ "Wouldn’t you prefer 0’Reilly's book?" "n is the ratio of a circle's circumference to its radius" `"She said 'hi'", he said.`
В ранніх версіях JS рядкові літерали мали бути записані лише в один рядок. Для створення довгих рядків в такому випадку використовується конкатенації однорядкових рядків за допомогою операції +. Починаючи з ES5 рядковий літерал можна розбивати на декілька рядків додаючи в кінець кожного рядка окрім останнього зворотній слеш.
Якщо потрібно включити символ нового рядка в рядковий літерал що знаходиться в одинарних чи подвійних лапках, необхідно скористатись послідовністю символів /n.
Синтааксис зі зворотніми лапками дозволяє розбивати рядки на декілька. В такому випадку ділителі рядків будуть частиною рядкового літералу.
Керуючі послідовності в рядкових літералах
Символ зворотнього слешу в JavaScript має спеціальне значення. В парі зі слідуючим за ним символом він являє символ що не може бути поданий по іншому в середені рядка. Наприклад \n – керуюча послідовність що являє собою символ нового рядку. У випадку, коли після зворотнього слешу немає визначеного спеціального символу, він ігнорується.
Робота з рядками
Якщо операція + використовується з цифрами, вона їх поєднує, приєднуючи дргий рядок в кінець першого.
Рядки можна порівнювати між собою за допомогою стандартних операцій ===, !==, <, <=, >=. Порівняння відбувається шляхом порівняння 16-бітних значень.
Для визначення довжини рядка використовується властивість рядку – length. Крім цього у JavaScript пропонується великий API інтерфейс для роботи з рядками.
В зв’язку з тим, що рядки у JS є незмінними, їх можна трактувати як масиви, що дозволяють лише читання. Тому для отримання доступу до окремих символів дозволено використовувати квадратні дужки:
let s = "hello, world” ; s [0] // => "h” s[s.length-1]. // => "d"
Шаблонні літерали
Шаблонні літерали з’явилися в ES6 і значно спростили використання рядкових літералів.
Фінальне значення шаблонного літералу вираховується за рахунок оцінки всіх включених виразів, перетворення значень цих виразів у рядки та об’єднання вирахованих рядків з літеральними символами всередені зворотніх лапок.
Співставлення з шаблонами
В JS є тип даних – регулярні вирази (RegExp). Його призначення співвідносити текст з шаблоном.
Регулярні вирази у JavaScript не відносяться до одного з фундаментальних типів мови, але вони мають літеральний синтаксис, як у рядків чи чисел, тому часто здаються фундаментальними.