テンプレート文字列
( `)抗引用符によって同定。これは、通常の文字列として使用することができ、また、文字列の複数の行を定義するために使用される、または文字列変数に埋め込むことができます。
// 一般的な文字列 `JavaScriptでは「\ n-は」LINE-IS feed.` // 複数行の文字列 `JavaScriptでは、これはIS legal.`ありません console.log( `ストリングテキスト行 1 列のテキスト・ライン 2 `)。 // に埋め込まれた文字列変数 のlet名=「ボブ」、時間=「今日」; `こんにちは$ {名前}、あなたはどのように$ {時間}です?`
組み込みテンプレートの文字列変数は、変数名を書き込む必要がある${}
に。
内部ブレースは、動作可能な任意のJavaScript式、およびオブジェクトのプロパティへの参照に配置することができます。
X = 1ましょう。 yはせ = 2 。 `$ {X} + $ {Y} = $ {X + Y}` // "1 + 2 = 3" '$ {X} + $ {Y * 2} = $ {X + Y * 2 } ` / / "1 + 4 = 5" せOBJ = {X 1、Y:2 }。 `$ {obj.x + obj.y}` // "3"
テンプレート文字列の中で関数を呼び出すことができます。
関数FN(){ リターンの"Hello World" ; } `FOO $ {FN()} bar` // fooのHello Worldのバー
さらには、ネストされたテンプレート文字列。
あなたが必要なときに実行参照テンプレートの文字列自体を、必要な場合は、関数として記述することができます。
聞かせてFUNC =(名)=> 'こんにちは$ {名前}!`; FUNC( 'ジャック・')// "こんにちはジャック!"
ラベルテンプレート
関数テンプレート文字列、ちょうどその上。すぐに、関数名の後に、関数は、このテンプレート文字列に対処するために呼び出されますすることができます。これは、「ラベルテンプレート」機能(タグ付けされたテンプレート)と呼ばれています。
alert`123 ` // と等価 に警告(123)
「ラベル・テンプレート」の重要なアプリケーション悪意あるコンテンツを入力するからユーザーを防ぐHTML文字列をフィルタリングすることです。
メッセージ=ましょう SaferHTML` <P> $ {}送信者があなたにメッセージを送った。</ P> `。 関数SaferHTML(templateData){ sはせ templateDataを= [0 ]。 以下のために(; iはarguments.lengthをを<; I = 1せiは++ ){ せ引数 = 文字列(引数[I])。 // 代わりに特殊文字をエスケープします。 S + = arg.replace(/&/ gで、 "&#038;" ) .replace( / </ gであり、 "&LT;" ) .replace( /> / gであり、 "&GT;" ); // テンプレート内の特殊文字をエスケープしないでください。 S + = templateData [I]。 } リターン秒; }
ラベルテンプレートの別の用途は、多言語変換(国際法)です。