【问题标题】:Does strict mode in one function have an effect on a function it calls?一个函数中的严格模式是否会影响它调用的函数?
【发布时间】:2015-06-27 05:14:40
【问题描述】:

例如,我有这样的代码:

function test() {
  // some code
}

function main() {
  "use strict";
  test();
}

如您所见 - 在函数 main 中,我启用了严格模式。

问题:这是否会在函数test 中启用严格模式,还是我需要为每个函数分别定义严格模式?

谢谢。

【问题讨论】:

  • 您可能还想查看this answer,它几乎没有解释它的示例。

标签: javascript strict


【解决方案1】:

不,它没有。严格模式是作用域。所以只有main 中的代码处于严格模式。

请注意,虽然严格模式是作用域的,一些它的影响可以在严格模式代码之外看到。您的代码并非如此,但我认为我应该提及它。 This question 及其答案更详细地说明了这一点。

【讨论】:

    【解决方案2】:

    不,因为 javascript 具有函数级别的范围,所以现在 strict 的范围仅限于函数 main。如果您希望将其限定为其他函数,您可以全局指定 "use strict"; 或单独为所需函数指定它。

    注意:全局指定它会影响所有功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-11
      • 2014-07-24
      • 2016-12-31
      • 1970-01-01
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多