在NodeJS中使用"use strict"
有什么好处?例如,使用全局对象不是一个好主意,因为您的所有请求都会使该对象发生突变(当然,假设所讨论的对象对于每个用户都应该是唯一的)。在这种情况下,使用严格模式将是一个好主意,不是吗?
我觉得严格模式与Node配对是个好主意,但我无法通过Google找到任何利弊。
免责声明:我知道use strict
的作用,这个问题主要针对服务器端的利弊!
最佳答案
好吧,清晰度和速度。
不同于SO中流行的答案和问题所说的-严格模式和"use strict"
指令的真正主要目标是消除JavaScript中的dynamic scoping,这就是为什么不允许通过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在内部广泛使用此功能。
引用:
关于javascript - NodeJS严格模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23765190/