首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Node.js中“use strict”语句是如何解释的?

在Node.js中“use strict”语句是如何解释的?
EN

Stack Overflow用户
提问于 2013-08-24 18:09:26
回答 1查看 147.4K关注 0票数 211

我已经开始探索Node.js,并写了很多演示web应用程序,以了解Node.js、Express.js、jade等的流程。

但我最近遇到的一件事是,将"use strict"语句作为每个函数和每个.js文件中的第一行。

Node.js到底是如何解释它的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-24 18:30:28

"use strict";

基本上它启用了严格模式。

严格模式是一种允许您将程序或函数置于“严格”操作上下文中的功能。在严格的操作上下文中,方法表单像以前一样将其绑定到对象。函数形式将其绑定到未定义的对象,而不是全局集合对象。

根据您的评论,您将会有一些不同之处。但这是你的假设。Node.js代码只是您的JavaScript代码。所有Node.js代码都由 JavaScript engine解释。V8 JavaScript Engine是谷歌为Chrome web浏览器开发的开源JavaScript引擎。

因此,Chrome浏览器和Node.js对"use strict";的解释不会有太大区别。

请阅读什么是JavaScript中的严格模式。

有关详细信息,请参阅:

  1. Strict mode
  2. ECMAScript 5 Strict mode support in browsers
  3. Strict mode is coming to town
  4. Compatibility table for strict mode
  5. Stack Overflow questions: what does 'use strict' do in JavaScript & what is the reasoning behind it

ECMAScript 6:

ECMAScript 6代码&严格模式。以下是简要的from the specification

10.2.1严格模式代码

可以使用无限制或严格模式语法和语义来处理ECMAScript脚本语法单元。在以下情况下,代码被解释为严格模式代码:

如果以包含使用严格指令的指令开头(参见14.1.1).

  • Module代码总是严格模式code.

  • All部分ClassDeclaration或ClassExpression是严格模式代码),则

  • 全局代码是严格模式代码。如果以包含使用严格指令的指令开头,或者如果对eval的调用是包含在严格模式code.

  • Function代码中的直接eval (参见12.3.4.1),则

  • 评估代码是严格模式代码。FunctionExpression、GeneratorDeclaration、GeneratorExpression、MethodDefinition或ArrowFunction包含在严格模式代码中,或者如果生成函数[ECMAScriptCode]内部插槽的值的代码以包含Use strict Directive.

  • Function代码(作为参数提供给内置函数)的指令开头,则生成器构造函数是严格模式代码(如果最后一个参数是字符串,则在处理时该字符串是以包含Use Strict指令的指令开头的FunctionBody。

此外,如果您不知道当前版本的Node.js支持哪些功能,此node.green可以帮助您(利用与kangax相同的数据)。

票数 206
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18417381

复制
相关文章

相似问题

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