2016-11-12 8 views
4

ノードがChromeのV8 JavaScriptエンジンを使用していることがわかりました。 ES6サポートherehereに関するいくつかの情報があります。ノードにECMAScriptバージョンを設定することはできますか?

node --v8-options 

しかし、どのオプションもECMAScriptバージョンの選択を許可していないようです。

hereノードはES3をサポートしていましたが、後でV8の進化とともにES5に移行しました。

Nodeが5番目より古いバージョンのECMAScriptを使用するように強制できますか?現在使用されているV8エンジンはESバージョンの選択をサポートしていますか?

答えて

3

EcmaScriptのすべてのバージョンは、以前のバージョンと下位互換性があります。

ES3機能はES5で動作し、ES5機能はES2015で動作するため、ES3コードはES5とES2015で正常に動作するため、ES3環境でコードを実行する必要はありません。

一般的に、新しいバージョンのEcmaScriptには、ES5で言語を少しでもクリーンアップしようと決めたときに、改ざんされた変更はありませんでした。use strictを追加することに決めました。 ES3で実行された古いコード

Javascriptエンジンには、通常、EcmaScriptの異なるバージョンを実行するオプションはありません。必要ではないので、最新バージョンはすべての以前のバージョンの標準と互換性があります。

+0

しかし、私はES3を実行して古いバージョンを試してみたかったのです。特に私はTypeScriptがES3(ターゲットは 'es3'、 'es5'、 'es6'、 'es2015')上で動くことができるライブデモを見せたいと思っていたので、非常に古いブラウザでも現代的な機能を得ることができます。また、TSコンパイラがES3で動作するようにES5で導入されたObject.create()のような操作を適切に変更するかどうかを確認したいと考えました。 – Landeeyo

+1

あなたの唯一の選択肢は、ES3しかサポートしていない古いエンジンを見つけようとすることだと思います.Nodeがリリースされる前にNetscape Navigator 1.0に戻っていなければならないでしょう1995年またはその前後。 – adeneo

+0

@adeneo、JSの 'Duplicate properties names'はどうですか? strictモードのES5では、構文エラーとみなされます。しかし、ES2015では、Computed property namesの衝突の可能性があるため、エラーを取り除いていました。 その構文エラーを有効にしたい場合はどうすればよいですか? –

2

JSエンジンは、実装者が仕様のすべての機能を実装していないため、仕様通りにバージョン化されていません。また、すべてのベンダーが実装した機能セットは、それは短命の夢だった。

ES3をデモするには、IE6 - 8を実行する必要があります。 ... IEには問題はありますが、それは難しくありがたいことです。

関連する問題