Синтаксис JavaScript Справочник JavaScript JSON Коды клавиш События Строгий режим

JavaScript строки (string)

Тип данных строка (string) используется для представления текста. Соответственно, значениями типа string является текст. Любой текст в JavaScript является строкой.

Кавычки

Строки в JavaScript должны быть заключены в кавычки. В JavaScript существует три вида кавычек: двойные (" "), одинарные (' ') и обратные (` `):

"Строка в двойных кавычках"
'Строка в одинарных кавычках'
`Строка в обратных кавычках`

Вид кавычек в начале и конце строки должен совпадать.

Строки могут состоять из нуля и более символов:

''         // Пустая строка
"Строка"   // Не пустая строка

Строки с двойными и одинарными кавычками ничем не отличаются между собой по функционалу – они могут содержать лишь текст и управляющие последовательности. А вот строки с обратными кавычками имеют более широкий функционал. Такие строки могут содержать так называемые подстановки, обозначаемые знаком доллара и фигурными скобками ${выражение}. Подстановки могут содержать любые произвольные выражения:

let стр = "Мир!";
let стр2 = `Привет, ${стр}`;  // Использование переменной в строке

alert(стр2);                  // Привет, Мир!
alert(`2 + 3 = ${2 + 3}.`);    // 2 + 3 = 5.

Выражение, расположенное в подстановке (${...}) вычисляется, и его результат становится частью строки.

Строки в обратных кавычках могут занимать более одной строки, сохраняя все пробельные символы:

let числа = `Числа:
1
   2`;

alert(числа); // Числа:
              // 1
              //   2

Строки с обратными кавычками называются строками-шаблонами или шаблонными литералами.

Строки, заключённые в одни кавычки, могут содержать другие кавычки:

"одинарные 'кавычки' и `обратные` внутри двойных"
'а здесь "так" и `так`!'
`а здесь "так" и 'так'!`

Для удобства, большие строковые литералы можно разбивать на несколько строк, заканчивая каждую строку, кроме последней, символом \:

alert("это всё одна \
длинная \
строка");   // это всё одна длинная строка

alert('это всё одна \
длинная \
строка');   // это всё одна длинная строка

alert(`это всё одна \
длинная \
строка`);   // это всё одна длинная строка

Кодировка символов строки

Вне зависимости от того, какая кодировка установлена для страницы, в JavaScript для строк всегда используется кодировка UTF-16.

В JavaScript строка – это неизменяемая, упорядоченная последовательность 16-битных значений, каждое из которых представляет символ Unicode. Для представления символов Unicode в JavaScript используется кодировка UTF-16. Символы включают в себя буквы, цифры, знаки пунктуации, специальные символы и пробельные символы.

Длина строки

Длина строки – это количество 16-битных значений (а не самих символов), содержащихся в ней. Длину строки содержит свойство length:

alert("Привет".length );   // 6

Символы, кодовые пункты которых не умещаются в 16 бит, обрабатываются в соответствии с правилами кодировки UTF-16 как последовательности из двух 16-битных значений. Это означает, что строка, имеющая длину, равную 2 (два 16-битных значения), на деле может представлять единственный символ:

alert("a".length);   // 1
alert("𝑒".length);   // 2

Нумерация и доступ к символам строки

Как уже было сказано, строка представляет собой упорядоченную последовательность 16-битных значений, каждому из которых соответствует определённый символ. Нумерация 16-битных значений в строке начинается с нуля, т. е. первое 16-битное значение находится под индексом 0, второе – под индексом 1 и т. д. Индекс – это порядковый номер.

Получить символ строки (состоящий из одного 16-битного значения) можно с помощью индекса, заключённого в квадратные скобки [индекс]:

let стр = "Привет";

alert(стр[0]);   // П
alert(стр[3]);   // В

Чтобы с помощью индексов обратиться к символу, состоящему из двух 16-битных значений, нужно, используя конкатенацию, написать эти индексы так, чтобы в результате получилась последовательность из двух 16-битных значений:

let стр = "𝑒";
 
alert(стр[0] + стр[1]);   // "𝑒"

Строки неизменяемые

В JavaScript строки неизменяемые. Это значит, что в уже существующей строке нельзя менять никакие символы или добавлять в неё что-то новое.

Так как строки неизменяемые, то методы, используемые для работы со строками, возвращают новые строки, а не изменяют ту строку, относительно которой они были вызваны:

let стр = "Привет!";
 
alert(стр.toUpperCase());   // "HELLO" - новое возвращаемое методом значение
alert(стр);                 // "hello" - первоначальная строка не изменена

Чтобы изменить строку, можно создать новую строку и записать её в ту же самую переменную вместо старой строки:

let стр = "Строка";
стр = стр.toUpperCase();
alert(стр);   // "СТРОКА"

Управляющие последовательности

В строковых литералах можно использовать управляющие последовательности. Управляющая последовательность – это последовательность, состоящая из обычных символов, которая обозначает символ, не представимый внутри строки другими способами. Управляющие последовательности предназначены для форматирования вывода текстового содержимого.

В таблице ниже представлены управляющие последовательности:

Последовательность Значение
\0 Символ NUL – пустой символ ("\u0000").
\t Горизонтальная табуляция ("\u0009").
\n Перевод на новую строку ("\u000A").
\b Возврат на одну позицию – то, что происходит при нажатии на клавишу backspace ("\u0008").
\r Возврат каретки ("\u000D").
\f Перевод страницы – очистка страницы ("\u000C").
\v Вертикальная табуляция ("\u000B").
\" Двойная кавычка ("\u0022").
\' Одинарная кавычка ("\u0027").
\\ Обратный слэш ("\u005C").
\xNN Номер символа из набора символов ISO Latin-1, заданный двумя шестнадцатеричными цифрами (N – шестнадцатеричная цифра 0-F). Например, "\x41" (это код буквы "A").
\uNNNN Номер символа из набора символов Unicode, заданный четырьмя шестнадцатеричными цифрами (N – шестнадцатеричная цифра 0-F). Например, "\u0041" (это код буквы "A"s).

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

alert("Греческая буква сигма: \u03a3.");   // Греческая буква сигма: Σ.
alert("Многострочная\nстрока")             // Многострочная
                                           // строка
                                           
alert("внутри используются \"двойные\" кавычки");   // внутри используются "двойные" кавычки

Если символ \ предшествует любому символу, отличному от приведённых в таблице, то он просто игнорируется интерпретатором:

alert("\k");   // "k"

Символы Unicode, указываемые с помощью управляющей последовательности, можно использовать не только внутри строковых литералов, но и в идентификаторах:

let a\u03a3 = 5;
alert(a\u03a3);   // 5

Конкатенация

Конкатенация - это объединение двух или более строк в одну большую. Объединение происходит с помощью оператора + (плюс). При конкатенации каждая последующая строка добавляется в конец предыдущей:

var str1 = "Hello ";
var str2 = "World!";

document.write(str1 + str2 + "<br>"); // "Hello World!"
document.write(str1 + "World!");
Попробовать »

Значение любого типа, которое объединяется со строкой, будет неявно (автоматически) преобразовано в строку и далее будет произведена конкатенация.

var str1 = "Hello ";

alert(str1 + 1);     // "Hello 1"
alert(true + str1);  // "trueHello"
alert(str1 + NaN);   // "Hello NaN"
Попробовать »
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011-2019 © puzzleweb.ru

Реклама на сайте | puzinfo@puzzleweb.ru | ruen