2012-01-02 35 views
1

我相信V8的底層Node.js默認支持嚴格模式或ES5。Node.js:如何在V8引擎中啓用non strict或ECMASCRIPT3?

我們可以在V8引擎中啓用非嚴格或ECMASCRIPT 3嗎?

幾乎100%的ES5功能在Chrome(V8)中均可用,請參閱compatibility table

但是有些開發人員(包括我)仍然對ES3感到滿意,我們可以有這個選擇嗎?

+5

嚴格模式。還有,你想使用ES3的「真實」原因?您的ES3工作也應該使用ES5解釋器運行。 – Eliasdx 2012-01-02 19:53:53

回答

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使用嚴格,不需要明確提及「嚴格使用」。 – 2012-01-02 19:53:31

+0

感謝了... – 2012-01-02 19:55:56