Строки

Строка — неизменяемая последовательность 16-битных значений (массивоподобный объект). Для представления символов Юникода используется кодировка UTF-16. При этом, в JS нет отдельного типа "символ".

Строковые литералы могут быть следующих типов:

let str1 = 'строка';
let str2 = "строка";
let str2 = `строка`; // шаблонная строка (es6+)

Примечание: одинарные и двойные кавычки равноправны.

Кроме обычных символов можно использовать специальные, например:

код результат
\' одинарная кавычка (например 'That\'s nice!')
\" двойная кавычка (например "Did she say \"Hello\"?")
\\ обратный слэш
\n новая строка
\r возврат каретки
\t табуляция
\uXXXX кодовая точка Юникода (например '\u03c0' ==> 'π')
\xXX символ из кодировки Latin-1 (например '\x66' ==> 'f')

Примечание: XX и XXXX — шеснадцатиричные символы.

Длинна

Длинна строки содержится в свойстве length, например 'abc'.length === 3. Однако, из за ограничения в 16 бит на символ, некоторые символы могут быть представлены двумя значениями (суррогатные пары). Из этого следует, что значение length не равно количеству символов.

Сравнение

В JS символы сравниваются не по алфавиту а по коду, а сами строки — посимвольно (лексикографически).

Для правильного сравнения строк можно использовать стандарт ECMAScript Internationalization API (Intl), в частности, метод localeCompare.

Ссылки

results matching ""

    No results matching ""