首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS严格模式

NodeJS严格模式
EN

Stack Overflow用户
提问于 2014-05-20 16:22:48
回答 1查看 3K关注 0票数 11

"use strict"中使用NodeJS有什么好处吗?例如,使用全局对象不是一个好主意,因为您的所有请求都会更改所述对象(当然,假设所讨论的对象对每个用户都是唯一的)。在这种情况下,使用严格的模式是个好主意,不是吗?

我觉得严格的模式是一个好主意,与Node配对,但我一直未能找到任何利弊通过谷歌。

免责声明:我知道use strict做什么,这个问题是集中在服务器方面的利弊!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-20 16:39:02

好吧,清晰和快速。

与流行的答案和问题不同--严格模式和"use strict"指令的真正主要目标是在JavaScript中消除动态范围,这就是为什么不允许通过arguments更改参数和更改arguments本身,以及为什么不允许with,等等。

清晰性

严格模式不允许动态作用域,因此您可以始终静态地知道变量引用的内容。with语句、通过参数和其他类型的非静态作用域更改变量使代码在非严格模式下的可读性降低:

代码语言:javascript
复制
// 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在内部广泛使用这一功能。

参考文献:

  • 仍然不确定什么是动态/词法作用域?阅读本文@EricLippert
  • 这篇精彩的文章由“多梅尼克”写成。讨论参考资料
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23765190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档