在"use strict"中使用NodeJS有什么好处吗?例如,使用全局对象不是一个好主意,因为您的所有请求都会更改所述对象(当然,假设所讨论的对象对每个用户都是唯一的)。在这种情况下,使用严格的模式是个好主意,不是吗?
我觉得严格的模式是一个好主意,与Node配对,但我一直未能找到任何利弊通过谷歌。
免责声明:我知道use strict做什么,这个问题是集中在服务器方面的利弊!
发布于 2014-05-20 16:39:02
好吧,清晰和快速。
与流行的答案和问题不同--严格模式和"use strict"指令的真正主要目标是在JavaScript中消除动态范围,这就是为什么不允许通过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在内部广泛使用这一功能。
参考文献:
https://stackoverflow.com/questions/23765190
复制相似问题