Текст в JavaScript

В якості типу 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 не відносяться до одного з фундаментальних типів мови, але вони мають літеральний синтаксис, як у рядків чи чисел, тому часто здаються фундаментальними.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *