JavaScript метод String.raw()
Определение и применение
JavaScript метод raw() возвращает необработанную строковую форму строки шаблона.
Поддержка браузерами
Спецификация: ecma262
Поддерживается во всех основных браузерах с 2016 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 );
Спецификация
Значения параметров
| Параметр | Описание |
|---|---|
templateString |
Шаблонная строка. Допускается использование выражений внутри строки ${выражение}. Обязательный параметр. |
obj |
Объект со свойством raw, содержащим массивоподобное значение. Например,
{ raw: ["a", "b"] }. Литерал объекта не обязателен. При raw: null или отсутствии
raw возникает TypeError.
|
substitutions |
Значение, или значения для подстановки. Необязательный параметр. |
Исключения
| Тип исключения | Описание |
|---|---|
TypeError |
Возникает в том случае, если значение параметра, определяющее отформатированный объект не является правильно сформированным объектом. |
Примеры, попробуйте сами
В примере «Обратные слеши и подстановки» показан результат вызова метода.
Обратные слеши и подстановки
Измените исходную строку или аргумент метода и сравните результат после запуска.
index.html
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"
Режим чтения