2012-01-02 12 views
1

V8のNode.jsが厳密なモードをサポートしていると思います。Node.js:V8エンジンで非厳密またはECMASCRIPT3を有効にするにはどうすればいいですか?

V8エンジンで非厳密またはECMASCRIPT 3を有効にすることはできますか?

ほとんどのES5機能はChrome(V8)で利用できます(compatibility tableを参照)。

しかし、一部の開発者(私を含む)はまだES3に慣れていますが、そのオプションはありますか?

+5

厳格モードはデフォルトで有効になっていません。また、ES3を使いたい本当の理由もありますか? ES3の作業は、ES5インタプリタを使用して実行する必要があります。 – Eliasdx

答えて

5

コードに文字列"use strict"を含めないでください。 V8は厳密なモードをサポートしていますが、あなたが指示しない限り(すなわちES5仕様に従う)使用しません。

次のスクリプトを比較:

入力:

foo = "Hello"; 
console.log(foo); 

出力:

[email protected]:tmp # node test.js 
Hello 

入力:

"use strict"; 
foo = "Hello"; 
console.log(foo); 

出力:

[email protected]:tmp # node test.js 

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
ReferenceError: foo is not defined 
    at Object.<anonymous> (/Users/quentin/tmp/test.js:2:5) 
    at Module._compile (module.js:432:26) 
    at Object..js (module.js:450:10) 
    at Module.load (module.js:351:31) 
    at Function._load (module.js:310:12) 
    at Array.0 (module.js:470:10) 
    at EventEmitter._tickCallback (node.js:192:40) 
+0

それは?私はデフォルトではV8が厳密に "厳密な使用"を明示的に言及する必要はないと思う。 –

+0

ありがとう... –

関連する問題