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

javascript - this の JavaScript ジェネレーターの値

thisjavascriptのjavascriptジェネレーターの値は何ですか? 以下のコードでは、両方の比較で false が返され、 を実行すると , が空のよう.toSource()this見えますObject。ECMA または MDN ドキュメントへの参照は役に立ちますが、どちらにも何も見つかりませんでした。

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

javascript - JavaScript での for...of ループのサポートの検出

これは可能ですか?例:

これが可能かどうかを検出したい。

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

javascript - Draft ECMAScript 6 では、反復の終了を知らせるために StopIteration 例外を使用する理由は何ですか?

Draft ECMAScript 6 Specificationでは、専用メソッド ( Java/Scala およびC#) を使用して反復の終了を確認するStopIteration代わりに、例外を使用して反復の終了を通知する根拠は何ですか。hasNextMoveNext

潜在的なパフォーマンスの問題はさておき、私の意見では、実際には例外ではないものに例外を使用するべきではありません。

0 投票する
13 に答える
214429 参照

javascript - JavaScript のマップとオブジェクト

この機能を発見しました:

マップ: マップ オブジェクトは単純なキー/値マップです。

それは私を混乱させました。通常の JavaScript オブジェクトは辞書ですがMap、辞書との違いは何ですか? 概念的には、それらは同一です(Stack Overflowに関する別の質問によると)

ドキュメントも役に立ちません:

Map オブジェクトは、キーと値の両方が任意の ECMAScript 言語値である可能性がある、キーと値のペアのコレクションです。個別のキー値は、Map のコレクション内の 1 つのキーと値のペアでのみ発生する可能性があります。マップの作成時に選択された比較アルゴリズムを使用して識別された個別のキー値。

Map オブジェクトは、要素を挿入順に繰り返すことができます。Map オブジェクトは、ハッシュ テーブルまたはその他のメカニズムを使用して実装する必要があります。これらのメカニズムは、平均して、コレクション内の要素数に対してサブリニアなアクセス時間を提供します。この Map オブジェクトの仕様で使用されるデータ構造は、Map オブジェクトの必要な観察可能なセマンティクスを記述することのみを目的としています。実行可能な実装モデルを意図したものではありません。

…私にはまだオブジェクトのように聞こえるので、明らかに何かを見逃しています。

MapJavaScript が (十分にサポートされている)オブジェクトを取得するのはなぜですか? それは何をするためのものか?

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

javascript - ecmascript 6 での yield* と yield の比較

私は、最新の Node.js の新しいハーモニー ジェネレーターと、cogen-run、またはGeneなどのフロー制御にそれらを使用するライブラリーをいじっています。

の使用は非常に明確ですが、後の 2 つのライブラリではネストされたジェネレーター関数を使用しyieldた構文に気付きましたが、最初のライブラリではそうではありませんでした。yield*私はそれについての参照を見つけることができません。¿違いとユースケースは何ですか?

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

javascript - ES6 ジェネレーターとは何ですか? node.js でそれらを使用するにはどうすればよいですか?

私は今日、node.js ミートアップに参加しました。そこで会った人が、node.js には es6 ジェネレーターがあると言いました。彼は、これはコールバック スタイルのプログラミングを大幅に改善したものであり、ノードのランドスケープを変えるだろうと述べました。Iirc、彼はコール スタックと例外について何か言いました。

私はそれらを調べましたが、初心者に優しい方法でそれらを説明するリソースは実際には見つかりませんでした. ジェネレーターの概要と、コールバックとの違い (または優れている点) は何ですか?

PS: コードのスニペットを提供して、一般的なシナリオ (http 要求または db 呼び出しを行う) の違いを強調できれば、非常に役立ちます。

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

node.js - Nodejs Harmony/ES6 のマップ コレクションが壊れていますか?

Nodejs 0.10.20 の Map が壊れているようです。--harmony ( --harmony_collections フラグを含む) で起動します。参考のためにhttp://dailyjs.com/2012/10/15/preparing-for-esnext/
をチェックしてください。 以下の例は、Firefox 20.0 で実行されます。

Nodejsコンソールで次のことを行います

> var map = new Map([ ["name", "Nicholas"], ["title", "Author"]]);
未定義
> マップ
{}

そのため、コンストラクターの初期化は機能していないようです。次に、Firefoxの例に従いますが、ほとんど機能しません。

> console.log(map.has("名前")); // true
false
未定義
> console.log(map.get("name")); // "ニコラス"
undefined
undefined
> console.log(map.has("title")); // true
false
未定義
> console.log(map.get("title")); // "作成者"
undefined
undefined
> console.log(map.size()); // 2
TypeError: オブジェクト # has no method 'size'
at repl:1:17
at REPLServer.self.eval (repl.js:110:21)
at repl.js:249:20
at REPLServer.self.eval (repl .js:122:7)
インターフェイスで。(repl.js:239:12)
インターフェイスで。
Interface._onLine (readline.js:202:10)
で Interface._line (readline.js:531:8)
で Interface._ttyWrite (readline.js:760:14)
で ReadStream.onkeypress (readline.js:99: 10)

これらの基本的な Map メソッドが機能しないことに混乱しています。私は Nodejs バージョン 0.10.20 を持っています

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

javascript - Selenium webdriver promises で yield (ジェネレーター) を使用する方法は?

ジェネレーターを使用して、テストnode 0.11.xの作成を少し楽にしようとしています。Selenium私の問題は、それらを適切に利用する方法がわからないことです。構文の問題であるに違いないとほぼ100%確信しています。

公式selenium-webdriverモジュール (ver 2.37.0) とco(ver 2.1.0) を使用してジェネレーターを作成しています。

ジェネレーター/yield マジックを使用しない通常のテストは次のとおりです。

以下は、yield/generator マジックで同じ結果を得ようとする 2 つの試みです。

ご覧のとおり、プロミスのコールバック内を除いて、isPresent常にです。認めざるを得ませんが、私はジェネレーターにもプロミスにもあまり詳しくないので、非常に明白な何かを見落としている可能性があります。undefinedthen()

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

javascript - `return function *(){...}` とはどういう意味ですか?

コアで 奇妙な もの を 見 まし た. いくつかの新しい関数名があります ( https://github.com/koajs/koa/blob/master/examples/co.js#L10から):

とはreturn function *()どういう意味ですか? *JavaScriptで という名前の関数を宣言できますか?