簡體   English   中英

NodeJS嚴格模式

[英]NodeJS Strict Mode

在NodeJS中使用"use strict"有什么好處嗎? 例如,使用全局對象不是一個好主意,因為所有請求都會改變所述對象(假設所討論的對象當然應該對每個用戶都是唯一的)。 在這種情況下,使用嚴格模式本來是個好主意,不是嗎?

我覺得嚴格模式與Node配對是一個好主意,但我無法通過谷歌找到它的任何優點或缺點。

免責聲明:我知道use strict什么,這個問題集中在服務器方面的優點/缺點!

嗯,清晰度和速度。

不像SO中流行的答案和問題所說的那樣 - 嚴格模式和"use strict"指令的真正主要目標是消除JavaScript中的動態范圍 ,這就是為什么不允許通過arguments更改arguments和更改arguments本身,為什么with不允許,等等。

明晰

嚴格模式不允許動態范圍,因此您始終可以靜態地知道變量引用的內容。 with語句,通過參數更改變量和其他類型的非靜態作用域使代碼在非嚴格模式下可讀性降低:

// example from referenced thread
// global code
this.foo = 1;

(function () {
  eval('var foo = 2');

  with ({ foo: 3 }) {
    foo // => 3
    delete foo;
    foo // => 2
    delete foo;
    foo // => 1
    delete foo;
    foo // ReferenceError
  }
}());

在嚴格模式下避免這種頭痛。

速度

嚴格模式比非嚴格模式快得多。 許多優化只能在嚴格模式下進行,因為它可以更多地假設不改變的內容以及如何解析引用。 V8內部廣泛使用它。

參考文獻:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM