問題タブ [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 投票する
3 に答える
6179 参照

javascript - ジェネレーター関数での委任された yield (yield star、yield *)

ECMAScript 6 は、ジェネレーター関数とイテレーターをもたらすはずです。ジェネレーター関数 (function*構文を持つ) は反復子を返します。イテレーターには、next繰り返し呼び出されるとジェネレーター関数の本体を実行し、すべてのyieldオペレーターで実行の一時停止と再開を繰り返すメソッドがあります。

ジェネレーターに関するECMAScript 6 wiki では、次のように「委譲された yield」yield*演算子も紹介されています。

オペレーターはyield*別のジェネレーターに委任します。これは、ジェネレーターを構成するための便利なメカニズムを提供します。

「別のジェネレーターに委任する」とはどういう意味ですか? yield*「ジェネレーターを便利に構成する」にはどうすればよいですか?

[ノード v0.11.3 のジェネレーターで--harmony-generatorsフラグを使用して遊ぶことができます。]

0 投票する
4 に答える
3984 参照

javascript - for ループの代わりに while ループで繰り返す

ECMAScript 6 では、反復のためのジェネレーター、イテレーター、およびシンタックス シュガーが導入されています。フラグ付きの Node.JS v0.11.4

--harmony --use_strict --harmony_generators

次のジェネレータを理解しています

次に、1000 未満のフィボナッチ数を出力できます。

この例では、whileループではなくforループの方がより自然で、次のようになります。

イテレータの反復は、whileループではなくループで実行できforますか?

0 投票する
4 に答える
6206 参照

javascript - 配列を使用してセットを構築する方法

私はSetNode.JS v0.11.3と--harmonyフラグで遊んでいます。API は正常に動作します。 addremoveclearなどを実行できます。しかし、配列を使用してセットを初期化することはできませんでした。私は試しました(MDNページのプロンプトに従って)

配列をセットに変換するにはどうすればよいですか? MDN は時代遅れですか? Node.JS は機能を実装していないだけですか?

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

javascript - シンボルはどのように機能しますか?

Node.JS v0.11.3 は、--harmony_symbolsフラグ付きの ECMAScript 6 シンボルをサポートしていると主張しています (こちらを参照)。最新の草案によると

プロパティは、キー値を使用して識別されます。キー値は、ECMAScript 文字列値またはシンボル値のいずれかです。

次の例を試しました

しかし、最後の行でエラーが発生します

TypeError: シンボルから文字列への変換

シンボルはどのように機能しますか? 私の例は間違っていますか、それとも Node.JS は実際にはシンボルをサポートしていませんか?

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

javascript - プロパティのキー/値を回復する

Node.JS v0.11.4 の ECMAScript 6 シンボルとマップを--harmonyフラグで遊んでいます。以下を検討してください。

'Noise'一意であることが保証されている「匿名」シンボル キーによってプロパティが識別される場合、値を取得できますか?

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

javascript - オブジェクトがガベージ コレクションの準備ができていることをどのように示すことができますか?

ECMAScript 6 では弱いマップが導入されています。これは Node.JS v0.11.3 でフラグ付きで実装されています--harmony

次のコードを考えてみましょう。

最後の行が実行されると、文字列'Save me!'はガベージ コレクションの準備が整います。文字列に、現在のスコープから文字列につながる強い参照のチェーンがなくなったことをコードで実証できますか?

size弱いマップには反復やマップに似たプロパティがないことを知っています。特定のオブジェクトが弱いマップからアクセスできなくなったことを事後的に知る方法がないということですか?

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

javascript - スコーピングのみに使用されるブロックはどのように呼び出されますか?

whileJavaScript には、ブロック、ifブロック、ブロックなど、多くの種類のブロックがありforます。ES6 ではブロック スコープが導入されているため、「純粋にセマンティック」で「匿名」のブロックは理にかなっています。

上記のタイプのブロック (スコーピングのみに使用) は何と呼ばれますか?

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

javascript - 言語の変更に備えるには?

私は JavaScript の内外を学ぶのに苦労していますが、最近、ECMAScript 6 が導入されつつあることがわかりました。間もなく変更され、廃止されることを学ぶことは、ますます些細なことのように思えます。新しいバージョンが出たときに、ECMAScript5 の複雑な詳細に飛び込む価値があるかどうかはわかりません。ECMAScript 6 のプログラマーとしてどのように準備すればよいですか? また、より一般的には、進化する言語にどのように準備すればよいですか?

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

javascript - JavaScript シンボル タイプ: (非文字列オブジェクト キー)

この ECMAScript 6 ドラフト仕様で言及されている "Symbol" JavaScript タイプとは何ですか?

仕様を引用するには:

Symbol 型は、Object プロパティのキーとして使用できるすべての非 String 値のセットです。

可能な Symbol 値はそれぞれ一意であり、不変です。

シンボル値には、[[Private]] と呼ばれる単一の監視可能な属性があり、その不変値は true または false です。プライベート シンボルは、[[Private]] 属性の値が true の Symbol 値です。

オブジェクトのキーは文字列だけだと思っていましたが、私だけではありません。この受け入れられたSOの回答を引用するには:

…オブジェクト キーは常に文字列です…</p>

シンボル タイプとは何かを説明し、その使用法を示していただけますか。私は仕様を理解しようとしています。

ありがとう!