首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript:严格模式和匿名函数

JavaScript:严格模式和匿名函数
EN

Stack Overflow用户
提问于 2011-05-17 01:17:02
回答 1查看 2.3K关注 0票数 11

我几乎所有的JS文件都包装在匿名函数中。如果我在匿名函数之外包含"use strict";,严格模式是否仍然适用于匿名函数?

例如,严格模式是否应用于以下脚本中匿名函数的内部主体:

代码语言:javascript
复制
"use strict";

(function() {
    // Is this code running under strict mode?
})(); 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-17 01:21:59

根据John Resig's article的说法,如果您在文件顶部打开严格模式,它将应用于整个文件/脚本。所以,是的,这意味着它将在匿名函数中应用。

您也可以将其添加到函数中,在这种情况下,它仅适用于该特定函数。

编辑后添加:这是the full specification。一个相关的段落:

10.1.1严格模式代码

可以使用无限制或严格模式语法和语义来处理ECMAScript程序语法单元。当使用严格模式处理时,这三种类型的ECMAScript代码被称为严格全局代码、严格求值代码和严格函数代码。在以下情况下,代码被解释为严格模式代码:

如果

  • 全局代码以包含使用严格指令的指令开头(请参见14.1),则它是严格全局代码。如果
  • 评估代码以包含使用严格指令的指令开头,或者如果对评估的调用是对严格模式代码中包含的评估函数的直接调用(请参阅15.1.2.1.1),则该代码是严格评估代码。
  • 函数代码是FunctionDeclaration、FunctionExpression或访问器PropertyAssignment的一部分,如果其FunctionDeclaration、FunctionExpression或PropertyAssignment包含在严格模式代码中,或者函数代码以包含Use strict指令的指令开头,则该函数代码是严格函数代码。如果作为FunctionBody处理时,作为最后一个参数提供给内置函数构造函数的字符串以包含Use strict指令的指令开头,则作为最后一个参数提供给内置函数构造函数的
  • 函数代码是严格函数代码。
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6020924

复制
相关文章

相似问题

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