String.raw()
- Что такое String.raw()
- Синтаксис
- Отличие от обычной строки
- Пример с путем
- Подстановки
- Когда использовать
- Итого
String.raw() помогает получить строку в «сыром» виде. В такой строке последовательности вроде \n и \t остаются обычным текстом.
let text = String.raw`Первая строка\nВторая строка`;
console.log(text);
Результат:
Первая строка\nВторая строка
\n не превратился в перенос строки. JavaScript оставил обратный слеш и букву n как обычные символы.
Что такое String.raw()
String.raw() - это специальный метод для шаблонных строк. Его пишут перед обратными кавычками, поэтому он работает как тег для шаблонной строки.
let value = String.raw`Привет\nJavaScript`;
console.log(value);
Результат:
Привет\nJavaScript
Обычные строки и шаблонные строки обрабатывают escape-последовательности. String.raw() позволяет получить текст до такой обработки.
Синтаксис
Основная запись выглядит так:
String.raw`текст`;
Обратите внимание: здесь нет круглых скобок после raw. Метод стоит перед шаблонной строкой и получает ее содержимое.
let text = String.raw`A\tB`;
console.log(text);
Результат:
A\tB
Отличие от обычной строки
В обычной шаблонной строке \n становится переносом строки.
let text = `Первая строка\nВторая строка`;
console.log(text);
Результат:
Первая строка
Вторая строка
С String.raw() эта же запись остается одной строкой с символами \n.
let text = String.raw`Первая строка\nВторая строка`;
console.log(text);
Результат:
Первая строка\nВторая строка
Пример с путем
String.raw() может быть удобен, когда в строке много обратных слешей. Например, в путях Windows.
let path = String.raw`C:\Users\Elena\Documents`;
console.log(path);
Результат:
C:\Users\Elena\Documents
Без String.raw() такие строки часто приходится записывать с двойными обратными слешами.
Подстановки
Внутри String.raw() можно использовать подстановки, как в обычных шаблонных строках.
let userName = 'Elena';
let path = String.raw`C:\Users\${userName}\Documents`;
console.log(path);
Результат:
C:\Users\Elena\Documents
Текстовая часть остается сырой, а выражение внутри $ вычисляется как обычно.
Когда использовать
String.raw() нужен не каждый день. Чаще всего обычных строк достаточно.
Метод полезен, когда в строке важно сохранить обратные слеши как есть: например, в путях, шаблонах, примерах кода или текстах, где нужно показать \n, а не сделать перенос строки.
Итого
String.raw() возвращает содержимое шаблонной строки без обработки escape-последовательностей.
String.raw`A\nB`;
Результатом будет строка с символами \n, а не строка с переносом. Используйте этот метод точечно, когда действительно нужно сохранить обратные слеши.