問題タブ [ecmascript-6]

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 投票する
2 に答える
16787 参照

javascript - ES6モジュールの構文に関するシンタスティックな不満

私は javascript のシンタスティックが大好きですが、新しいES6 モジュール tranpilerを使用しており、シンタスティックはこれらのタイプのステートメントに満足していません。

とにかく、この種の発言についてシンタスティックな沈黙を保つことができるものはありますか?

0 投票する
2 に答える
1222 参照

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 とテンプレートに関する議論がかなり不足しているように見えるため、このトピックに関する一般的な考えに感謝します。 .

0 投票する
2 に答える
2373 参照

javascript - ES6 の WeakMap を列挙できないのはなぜですか?

JavaScript (および関連) に再参入する前に、私は多くの ActionScript 3 を実行しました。ただし、AS3 バージョンは通常のジェネリック オブジェクトのように列挙可能でしたが、WeakMap には特に.keys()orがありません.values()

AS3 バージョンでは、いくつかの非常に興味深く便利な構造をリグすることができましたが、JS バージョンは多少制限されているように感じます。何故ですか?

Flash VM がそれを実行できるとしたら、ブラウザーが同じことを実行できない理由は何ですか? それがどのように「非決定論的」になるかを読みましたが、それは一種のポイントですよね?

0 投票する
2 に答える
492 参照

javascript - ECMA-262 ReturnIfAbrupt

最近、ECMAScript 言語仕様を読みました。仕様全体を読むつもりはなかったので、一部だけ抜粋しました。私は多くの質問に出くわしました.そのうちの1つは次のようなものです:

長さまで

私が理解しているように、それは次のようになるはずです:

ReturnIfAbrupt(len) の意味がわかりませんでしたが、次のことがわかりました。

ReturnIfAbrupt

1.引数が突然の完了の場合、引数を返します。

2.それ以外の場合、argument がCompletion Recordの場合は、 argument を argument.[[value]] とします。

突然の完了とは何ですか?それと完了レコードの違い?

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

javascript - isNaN の実装の背後にある理由は何ですか?

関数の名前はisNaN意味的に value を参照しますisNaNが、ネイティブ実装はorのようなtrue一部の非NaNオブジェクトを返します。undefined{}

たとえば、アンダースコアの実装ははるかに直感的/論理的だと思います。

ECMA 標準がこのような直感に反する動作を指定したのはなぜですか?

テストする値が 本当にある場合にのみisNaN返されるように設計し、別の関数で数値への変換可能性をテストする負担を残すように設計しなかったのはなぜですか?true isNaNisNumber

このようにすると、数値をテストするときに二重否定がないなど、さらに多くの利点が得られます。

それ以外の

ECMAScript 6 で導入する予定なのでNumber.isNaN()(期待どおりの動作をします)、このように考える人が増えているようです。

では、なぜ彼らisNaNはそもそもこのようなデザインをしたのでしょうか? それは単に間違った決定でしたか、それともそうする正当な理由がありましたか?

0 投票する
10 に答える
579135 参照

javascript - JavaScript の「デフォルトのエクスポート」とは何ですか?

ファイル: SafeString.js

今まで見たことがないexport defaultexport default理解しやすい同等のものはありますか?