MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

String.raw()

静的メソッドである String.raw() は、文字列リテラルのための Python の r プレフィックスや C# の @ プレフィックスのような template strings のタグ関数です。この関数は、template strings の生の文字列形式を取得するために使用されます。

構文

String.raw(callSite, ...substitutions)

String.raw`templateString`

引数

callSite
{ raw: 'string' } のような、よく形成されたテンプレート呼び出しサイトオブジェクト。
...substitutions
置換値
templateString
template string。必要に応じて置換します (${...})。

エラーのスロー

TypeError
第1 引数が正常に形成されていないオブジェクトの場合、TypeError がスローされます。

説明

ほとんどの場合、String.raw() は template strings とともに使用されます。上記の最初の構文は、JavaScript エンジンが、他の タグ関数 のように、適切な引数で呼び出すので、本当に使用されます。

String.raw() は template strings の唯一のビルトインタグ関数です。デフォルトテンプレート関数のように動作し、連結を行います。通常の JavaScript コードで再実装することができます。

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'

仕様

仕様 状況 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
String.raw の定義
標準 初回定義。
ECMAScript 2017 Draft (ECMA-262)
String.raw の定義
ドラフト  

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 41 34 (34) 未サポート 未サポート 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 未サポート 41 34.0 (34) 未サポート 未サポート 未サポート

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: dskmori, shide55
 最終更新者: dskmori,