一个函数中的严格模式是否会对它调用的函数产生影响?

时间:2015-06-27 05:14:41

标签: javascript strict

例如,我有这样的代码:

function test() {
  // some code
}

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

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

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

感谢。

2 个答案:

答案 0 :(得分:8)

不,它没有。严格模式是范围。因此,只有main中的代码处于严格模式。

请注意,虽然严格模式是作用域的,但的某些效果可以在严格模式代码之外看到。你的代码并不是这样,但我想我应该提一下。 This question及其答案将详细介绍。

答案 1 :(得分:-1)

不,因为javascript具有函数级别范围,所以现在strict仅限于函数main。如果您希望将其范围限定为其他功能,则可以指定"全局使用strict&#34 ;; 或单独指定所需功能。

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