13

バージョン 1.8.5 まで、Mozilla による JavaScript の継続的な開発について読んでいます: https://developer.mozilla.org/en/JavaScript

私の質問は、JavaScript 1.8.5+ と ECMAScript 5+ の間の言語機能の相関関係は何ですか? Mozilla の新しい JavaScript 機能 (ジェネレータ、配列内包表記など) が ECMAScript の一部になる可能性はありますか?

JavaScript 1.8.5 の機能を学習する価値があるかどうか (およびそれらをサポートしていないブラウザーにシムする作業を行うこと)、または JS 1.8.5 を忘れて新しい ECMAScript 5 機能の学習/シミングに集中する必要があるかどうかを把握したいだけです。

参考までに: Mozilla は、JavaScript を ECMAScript 5 に準拠させる計画について次のように語っています: https://developer.mozilla.org/En/JavaScript/ECMAScript_5_support_in_Mozilla

4

3 に答える 3

16

JavaScript 1.8.5 は、機能が追加された ECMAScript の Mozilla の実装です。ECMAScript 仕様 (および IE、Chrome、Opera などの現在の実装) のスーパーセットです。Mozilla は、独自のブラウザに追加する機能を求めていますが、ECMA に組み込まれる場合とされない場合があります。Mozilla は W3C のメンバーであり、ある程度の発言権を持っていることに注意してください。しかし、私の推測では、ほとんどの機能は実現しないでしょう。

結論 Firefox、FF 拡張機能、XUL アプリ、Rhino に固有のものをコーディングする場合を除き、使用しないでください (@Raynos のおかげで Rhino が追加されました)

于 2011-02-04T01:33:35.733 に答える
3

ES5に挑戦的に焦点を合わせます。1.7および1.8の機能の問題は、言語の構文が変更されるため、他のコードに変換できないことです。

letES5を使用してオブジェクトのすべてのプロパティをエミュレートすることはできますが、キーワードをエミュレートすることはできません。他のブラウザでは、さまざまな式は有効なjavascriptではありません。

ES5のほとんどが実行しているネイティブコードに追加することと、1.7および1.8が実行しているjavascriptの構文を変更することを区別する必要があります。

RHINOプラットフォーム用に開発する1.7と1.8の用途があります。しかし、ブラウザのjavascriptは仕様に固執します。

確かに、複数の値が返されるのは非常に優れた機能です。そのような配列の割り当てがあるといいでしょう

function() f {
     return [1,2,3];
}

[a,b,c] = f()

しかし、他の機能は構文に対する非常に大きな変更であり、ecmascriptを介してそれらをプッシュすることはできません。上記のような小さな変更でES6に入ることができるかもしれませんが、少なくとも1年は待たなければなりません。

したがって、現実的には、学習が1、2年で報われることを期待しないでください。ほとんどの場合、それは報われないでしょう。一般的な機能ユーティリティメソッドを定義できるunderscore.jsなどのライブラリを確認してください。

于 2011-02-04T01:23:10.800 に答える
1

ECMAScript は設計図のような「標準」であり、javascript は実際の言語であり、それが元になっていると思います。w3cには標準があり、人々がそれに基づいてレンダリングエンジンを作成する(または作成しない)のと似ています。

したがって、基本的にあなたの質問に答えるには、ECMAScript を見て、コンセンサスが何であるか、javascript がどのように動作することが「想定」されているかを確認しますが、JavaScript に焦点を当てる必要があります。

于 2011-02-04T01:10:59.163 に答える