String.raw()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.

Сводка

Статический метод String.raw() является теговой функцией для шаблонных строк; подобно префиксу r в Python или префиксу @ в C# для строковых литералов, эта функция используется для получения необработанной строки из шаблона.

Синтаксис

String.raw(callSite, ...substitutions)

String.raw`templateString`

Параметры

callSite

Правильно сформированный объект вызова, например { raw: 'string' }.

...substitutions

Значения подстановок.

templateString

Шаблонная строка, возможно с подстановками (${...}).

Выбрасываемые исключения

TypeError

Если первый аргумент не является правильно сформированным объектом вызова, выбрасывается исключение TypeError.

Описание

В большинстве случаев метод String.raw() используется вместе с шаблонными строками. Первый синтаксис, показанный выше, используется редко, поскольку движок JavaScript будет вызывать метод с соответствующими аргументами, подобно другим теговым функциям.

Метод String.raw() является единственной встроенной теговой функцией шаблонных строк, выступающей стандартной функцией по объединению их фрагментов. Вы и сами могли бы реализовать подобную функциональность на JavaScript.

Примеры

Пример: использование метода String.raw()

js
String.raw`Привет\n${2 + 3}!`;
// 'Привет\n5!', символ после 'Привет' не является символом новой строки,
// '\' и 'n' - это два символа.

String.raw`Привет\u000A!`;
// 'Привет\u000A!', а здесь мы получим символы
//  \, u, 0, 0, 0, A, всего 6 символов.
// Экранирующие символы не имеют особого значения и
// обратные слеши будут присутствовать в выходной строке.
// Вы можете убедиться в этом, проверив свойство .length строки.

let name = "Боб";
String.raw`Привет\n${name}!`;
// 'Привет\nБоб!', сработала подстановка.

// Обычно вам не нужно вызывать метод String.raw() как функцию,
// но никто не запрещает вам делать это:
String.raw({ raw: "тест" }, 0, 1, 2);
// 'т0е1с2т'

Спецификации

Specification
ECMAScript Language Specification
# sec-string.raw

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также