問題タブ [template-literals]

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.

0 投票する
1 に答える
18616 参照

javascript - node docs のこの `…${…}…` コードはどういう意味ですか?

Express ライブラリと Node.js を 1 つずつ学習しようとしています。最初に見ているのは、Nodereqiure(moduleName)関数の詳細です。

これに関するドキュメントを調べたところ、ドキュメントの例に奇妙なコードが見つかりました。

より具体的には、${circle.area(4)}ビット。

私が理解していることから$、JavaScript は他の変数と同じです。クライアント側の Web 開発で使用している場合は、ドキュメント関数のデリゲートとして使用されます (と思います)。ノードを使用するときに何に割り当てられますか?

その上で、この構文は何を意味するのでしょうか?${circle.area(4)}

$ある関数への単なる参照である場合、someFunction()これと同等ではないでしょうかsomeFunction(){cirle.area(4)}。それがどのように有効な構文になるかわかりません。

circle.area()また、とにかく関数を直接直接呼び出さないのはなぜですか?

0 投票する
1 に答える
1549 参照

javascript - テンプレートリテラル補間は空白テーブルを壊します

テンプレート リテラルを使用しているときに、テーブル形式に問題があることに気付きました。

このようなことをするとき:

{bye} の部分は 'Goodbye' から 4 文字短いため、文字列は次のように出力されます。

これは、配列やオブジェクトの補間ではさらに複雑になります。

誰かがこの種の問題に対処する方法を考え出したかどうか疑問に思っています。補間中に文字列の間隔を空けたテーブル形式を維持できる場所。


テンプレートタグが文字列と配列を使用しているとします。配列は単語間のスペースで連結されます。

角かっこ、引用符、ドル記号、中かっこなどは、補間の前に (視覚的に) 文字列の長さにカウントされます。単語間のスペースは、補間後に文字列の長さにカウントされます。インデントは、余分な文字が失われたり、タグ処理中に文字が追加されたりすることによって影響を受けます。

この質問には受け入れられた回答がありますが、もっと議論したいと思います。この問題には複数の答えがある場合があります。

0 投票する
0 に答える
52 参照

javascript - 文字列リテラルからテンプレート リテラルへ

Javascript 2015 で文字列リテラルをテンプレート リテラルに変換する方法はありますか?

たとえば、次のように の反対のようなものString.rawです。

そして、それが存在しない場合、なぜでしょうか? すぐに、インジェクション攻撃を防ぐための予防策かもしれないと思いますが...上記が本当に役に立ち、そのようなリスクがない場合は間違いありません

0 投票する
1 に答える
165 参照

javascript - ES2015 では、タグ付けされたテンプレート リテラルを正しい順序で再構築するにはどうすればよいですか?

テンプレート リテラルに関する MDN ドキュメントの例を使用して、カスタムの「タグ」関数を作成できます。

stringsここから、 と混合したときに供給されたのと同じ順序でメッセージを構築するにはどうすればよいvaluesでしょうか?

上記のタグ関数は、次のように値/文字列の順序を入れ替えると順序を維持できません。

ドキュメント: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

0 投票する
3 に答える
9168 参照

javascript - ES6 テンプレート リテラルは eval よりも安全ですか?

テンプレート リテラルは、私には eval のような匂いがし、eval を使用するのは悪い考えだとよく言われます。

私はテンプレート リテラルのパフォーマンスには関心がありませんが、インジェクション攻撃 (および私が考えていない可能性のあるその他のセキュリティ上の懸念) については懸念しています。

編集

私にとって奇妙に感じるものの例

どの出力

1、2、3

テンプレート リテラルは、グローバル レベルで副作用を起こしています。関数によっても直接的にも。

編集 2

テンプレートリテラルの安全性を示す例

プロンプトが表示されたら入力ii++すると、ログに記録されます

開始: 1

入力: ii+=1

テンプレートリテラルの後: 1

評価後: 2

編集 3

ECMAScript 仕様の調査を開始しました

私は詳細を理解していませんが、テンプレートリテラルは eval よりも安全に指定されているように感じます。

0 投票する
5 に答える
50338 参照

javascript - 「some ${string}」のような ECMAScript テンプレート リテラルが機能しない

テンプレート リテラルを使用したかったのですが、うまくいきません。値ではなく、リテラル変数名が表示されます。Chrome v50.0.2 (および jQuery) を使用しています。

出力