JavaScript метод String.raw()

Определение и применение

JavaScript метод raw() возвращает необработанную строковую форму строки шаблона.

Поддержка браузерами

Спецификация: ecma262

Поддерживается во всех основных браузерах с 2016 года.

Показать браузеры
Совместимостьjavascript.builtins.String.raw
ВозможностьКомпьютерыМобильные
ChromeEdgeFirefoxOperaSafariChrome AndroidFirefox for AndroidOpera AndroidSafari on iOSSamsung BrowserWebView AndroidWebView on iOS
raw✓41✓12✓34✓28✓9✓41✓34✓28✓9✓4.0✓41✓9

поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31

JavaScript синтаксис

JavaScript
String.raw`templateString`;
String.raw( obj, ...substitutions );

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

ECMAScript: String.raw()

Значения параметров

String: справочные сведения
Параметр Описание
templateString Шаблонная строка. Допускается использование выражений внутри строки ${выражение}. Обязательный параметр.
obj Объект со свойством raw, содержащим массивоподобное значение. Например, { raw: ["a", "b"] }. Литерал объекта не обязателен. При raw: null или отсутствии raw возникает TypeError.
substitutions Значение, или значения для подстановки. Необязательный параметр.

Исключения

String: справочные сведения
Тип исключения Описание
TypeError Возникает в том случае, если значение параметра, определяющее отформатированный объект не является правильно сформированным объектом.

Примеры, попробуйте сами

В примере «Обратные слеши и подстановки» показан результат вызова метода.

Обратные слеши и подстановки

Измените исходную строку или аргумент метода и сравните результат после запуска.

index.html
HTML
<!doctype html>
<html lang="ru">
  <head>
    <meta charset="UTF-8" />
    <title>Обратные слеши и подстановки</title>
  </head>
  <body>
    <p>Результат выполнения выводится в консоль.</p>
  </body>
</html>
main.js
JavaScript
// инициализируем две переменные, содержащие шаблонные строки
var temString = String.raw`Hello\nworld!`,
    temString2 = String.raw`Hello\u0040!`

// символ после 'Hello' не является символом новой строки
console.log(temString) // "Hello\nworld!"

// обратные слеши будут присутствовать в выходной строке
console.log(temString2) // "Hello\u0040!"

// вы можете использовать HTML внутри шаблонной строки
var myTemplate = `
  <pre>
    Отформатированный 
    многострочный текст
    {
      prop: "value"
    }
  </pre>`

// вы можете использовать выражения внутри шаблонной строки
var temString = String.raw`Hello\n${2 + 2 * 2}!`
console.log(temString) // "Hello\n6!"

// допускается использовать синтаксис метода .raw() как функции
console.log(String.raw({ raw: 'Hello' }, 1, 2, 3)) // "H1e2l3lo"
console.log(String.raw({ raw: 'ALLOHA' }, 'world')) // "AworldLLOHA"