String.raw()
The static String.raw()
method is a tag function of template literals, similar to the r
prefix in Python or the @
prefix in C# for string literals (yet there is a difference: see explanations in this issue). It's used to get the raw string form of template strings (that is, the original, uninterpreted text).
Syntax
String.raw(<var>callSite</var>, <var>...substitutions</var>) String.raw`templateString`
Parameters
callSite
- Well-formed template call site object, like
{ raw: 'string' }
. ...substitutions
- Contains substitution values.
templateString
- A template string, optionally with substitutions (
${...}
).
Return value
The raw string form of a given template string.
Errors thrown
Description
In most cases, String.raw()
is used with template strings. The first syntax mentioned above is only rarely used, because the JavaScript engine will call this with proper arguments for you, just like with other tag functions.
String.raw()
is the only built-in tag function of template strings; it works just like the default template function and performs concatenation. You can even re-implement it with normal JavaScript code.
Examples
Using String.raw()
String.raw`Hi\n${2+3}!`; // 'Hi\\n5!', the character after 'Hi' is not a newline character, // '\' and 'n' are two characters. String.raw`Hi\u000A!`; // 'Hi\\u000A!', same here, this time we will get the // \, u, 0, 0, 0, A, 6 characters. // All kinds of escape characters will be ineffective and // backslashes will be present in the output string. // You can confirm this by checking the .length property of the string. let name = 'Bob'; String.raw`Hi\n${name}!`; // 'Hi\\nBob!', substitutions are processed. // Normally you would not call String.raw() as a function, but you can do so: String.raw({ raw: 'test' }, 0, 1, 2); // 't0e1s2t'
Specifications
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'String.raw' in that specification. |
Standard | Initial definition. |
ECMAScript 2017 Draft (ECMA-262) The definition of 'String.raw' in that specification. |
Draft |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 41 | 34 (34) | No support | No support | No support |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | No support | 41 | 34.0 (34) | No support | No support | No support |
See also
License
© 2016 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/string/raw