問題タブ [template-strings]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - CSP セーフな ES6 テンプレート リテラル
スクリプト評価に関する Content-Security-Policy (CSP) 制限に違反することなく、 ES6 テンプレート リテラル(例: )のスタイルでテンプレートを解析するテンプレート エンジンはありますか?"string ${var}"
スクリプト評価に関するCSP の制限により、、、eval
およびが防止new Function
されます。setTimeout(string)
setInterval(string)
John Resig のMicroTemplates、 lodash _.template 、 DoT.jsなど、ES6 スタイルのテンプレート リテラルのようなものを提供または提供するように変更できるテンプレート エンジンが多数あります。ただし、すべてを使用して CSP に違反しているようですnew Function
。
制限のない Javascript を使用できると便利な場合var
もありますが、明らかな理由により、これは不可能な場合があります。ただし、必要に応じて出力をフォーマットするようにエンジンを変更できる必要があります。
この状況では、パフォーマンスは問題ではなく、テンプレートを事前にコンパイルすることはできません。他の人は事前コンパイルについて議論しています。
追加の制限として、コンテンツは HTML ではなくテキストです。結果として、Knockout や PURE などの DOM 指向のテンプレート エンジンが効果的に機能しないとは思いません。
私の最初の考えは、mustache.jsから始めてそこから変更することです (つまりmustache.tags = ['${', '}']
、変更またはDIY ソリューションですが、CSP とテンプレートに関する議論がかなり不足しているように見えるため、このトピックに関する一般的な考えに感謝します。 .
javascript - ES6 テンプレート文字列のテストベッド
私はES6 テンプレート文字列について調べることに非常に興味があり、この機能について少し読んでいます。
ただし、Chrome Canary がサポートしていないため (おそらく私は間違っているかもしれませんが!)、この新しい機能を試すために使用できる場所/何かはありますか? それを行うブラウザのベータ版はありますか?
内部で実験的な Javascript 機能を有効にしましたchrome://flags
javascript - ES6 タグ付きテンプレート関数は引数の順序をどのように解釈しますか?
次のコードを検討してください。
の引数は次のようにf
なります ( Traceur によると):
すべてのリテラル文字列を置換値で連結したいとしましょう。
正しい順序でそれを行うにはどうすればよいですか?
最初の配列の「分割点」を最初の後の各引数と一致させる必要がありますか?
ecmascript-6 - ES6 テンプレート文字列 (準リテラル) を処理するためのデフォルト関数をオーバーライドします
ES6 は、次のようなテンプレート文字列を提供します。
この場合、デフォルトのテンプレート ビルダーが呼び出されます。独自の「タグ」を使用することもできます。
ここtag
で、テンプレート文字列に関する情報が渡され、結果を生成する関数です。
私の質問は、タグが指定されていないときに呼び出されるデフォルトの関数をオーバーライドする方法はありますか?
別の質問: プロパティの最初の引数を調べる以外に、タグ関数がシステムによって呼び出されてテンプレート文字列を作成しているかどうか、直接呼び出されているかどうかを判断する方法はありraw
ますか?
javascript - JavaScript でのバックティック文字 (`) の使用
JavaScript では、バッククォート†は単一引用符と同じように機能するようです。たとえば、バッククォートを使用して、次のように文字列を定義できます。
バックティックの動作が実際に一重引用符の動作と異なる方法はありますか?
† プログラマーの間では、「バックティック」はより一般的にグラブ アクセントと呼ばれるものの 1 つの名前であることに注意してください。プログラマーは、"backquote" と "backgrave" という別名を使用することもあります。また、Stack Overflowなどでは、「backtick」の他の一般的なスペルは「back-tick」と「back tick」です。
javascript - 文字列をテンプレート文字列に変換する
テンプレート文字列を通常の文字列として作成することは可能ですか?
それをテンプレート文字列に変換し、
なしeval
で、new Function
および動的コード生成の他の手段はありますか?
javascript - 通常の文字列からテンプレート文字列を作成するにはどうすればよいですか?
だから私はこれを持っていますstring
:
結果が次のようになるように、テンプレート文字列に変換するにはどうすればよいですか。
テンプレートリテラルをプログラムで構築する方法はありますか?