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

javascript - 最新のブラウザーでの TypeScript のサポート

TypeScript に関連する広告情報をいくつか読みましたが、この JavaScript のスーパーセットについては経験がありません。だから私はいくつかの基本的な質問があります:

  1. 最新のブラウザーによるネイティブ TypeScript サポートの状況は?

  2. TypeScript のネイティブ サポートに対する主要なブラウザー ベンダーの立場は?

  3. TypeScript と ECMAScript6 の関係は何ですか? TypeScript は ECMAScript6 よりもはるかに多くの機能を提供しますか?

すべての質問または一部の質問に自由に回答してください。

0 投票する
9 に答える
124757 参照

javascript - ECMAScript 6 で矢印関数を使用する必要があるのはいつですか?

とES6() => {}function () {}関数を記述する 2 つの非常によく似た方法が得られます。他の言語では、ラムダ関数は匿名であることで区別されることがよくありますが、ECMAScript では、どの関数も匿名にすることができます。2 つのタイプのそれぞれに固有の使用ドメインがあります (つまり、this明示的にバインドする必要があるか、明示的にバインドしない必要がある場合)。これらのドメインの間には、どちらの表記法でも対応できる膨大な数のケースがあります。

ES6 のアロー関数には、少なくとも 2 つの制限があります。

  • を使用しないでくださいnew。作成時には使用できませんprototype
  • this初期化時のスコープへのバインドを修正

これらの 2 つの制限は別として、アロー関数は理論的にはほとんどどこでも通常の関数を置き換えることができます。実際にそれらを使用する正しいアプローチは何ですか? アロー関数を使用する必要があります。例:

  • 「どこでも機能する」、つまり、関数がthis変数にとらわれない必要はなく、オブジェクトを作成していません。
  • 特定のスコープにバインドする必要がある「必要な場所」、つまりイベントリスナー、タイムアウトのみ
  • 「短い」関数を使用するが、「長い」関数を使用しない
  • 別のアロー関数を含まない関数のみ

ECMAScript の将来のバージョンで適切な関数表記を選択するためのガイドラインを探しています。ガイドラインは、チーム内の開発者に教えられるように明確にする必要があります。また、ある関数表記から別の関数表記へと頻繁にリファクタリングする必要がないように、一貫性がある必要があります。

この質問は、今後の ECMAScript 6 (Harmony) のコンテキストでコード スタイルについて考えたことがある人、およびこの言語を既に使用したことがある人に向けられています。

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

javascript - Promise の実装は仕様に準拠していますか?

現在の仕様に準拠する Typescript の promise 実装 (実際にはポリフィル) を作成しようとしています (これらのhttp://promises-aplus.github.io/promises-spec/を使用しました)。

コードはhttps://gist.github.com/ilmattodel93/dbefa9eb86715f76e10eにありますが、仕様の 2.2.7 サブポイントを理解できません。レースとすべての静的メソッドのみが欠落している必要があります。

誰かが2.2.7のサブポイントを説明して、それらを正しく実装したかどうか教えてください。

注意と時間をありがとう、マティア。

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

javascript - "function* ()" のような関数定義の星印は何を意味しますか?

他のjsコードでその形式の定義を見つけたばかりですが、星は実際にはどういう意味ですか? ありがとう

0 投票する
11 に答える
106317 参照

javascript - javascriptで定数オブジェクトを変更できるのはなぜですか

ES6 がまだ標準化されていないことは承知していますが、現在多くのブラウザー constが JS のキーワードをサポートしています。

仕様では、次のように書かれています。

定数の値は再代入によって変更できず、定数を再宣言することはできません。このため、定数を初期化せずに宣言することはできますが、そうしても無駄です。

そして、私がこのようなことをすると:

私はすべてが大丈夫だxxx6思いyyyます[].

しかし、そうするとyyy.push(6); yyy.push(1);、定数配列が変更されました。今[6, 1]のところ、まだ変更できませんyyy = 1;

これはバグですか、それとも何か不足していますか? 最新のクロームとFF29でやってみた

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

ecmascript-harmony - 以下の ES6 クラスで、goFast() が機能するのはなぜですか?

私はES6についてもっと学びたいと思っており、チュートリアルでこのクラスを見ました。の前にキーワードがgoFast()なくても機能するのはなぜですか? functionこれはクラス内の関数の新しい短縮形ですか、それとも…?

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

javascript - EcmaScript 6 における yield の優先順位

buildオブジェクトを同期的に返す関数があり、それには function が含まれていますrunyieldこの関数はサンクを返すため、や などのライブラリを使用して呼び出すことができますco

基本的に、呼び出しは次のようになります。

さて、問題は、 がではなく をyield参照していることを確認したいということです。次のスニペットのように一時変数を導入せずに、どうすればそれを行うことができますか?runbuild

何か案は?

PS: 「--harmony」フラグを使用して Node.js 0.11.x でこのコードを実行しています。

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

javascript - オブジェクトの設定可能属性と書き込み可能属性の違い

javascript、オブジェクトデータプロパティ属性に関して次を見ました

— 構成可能: プロパティを削除または変更できるかどうかを指定します。

— Enumerable: for/in ループでプロパティを返すことができるかどうかを指定します。

— 書き込み可能: プロパティを変更できるかどうかを指定します。

ここで、「構成可能」と「書き込み可能」は同じもの (プロパティを変更できるかどうか) を表しているのに、なぜ 2 つの別個の属性が必要なのでしょうか?