繁体   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