在javavscript中,(function(){“ use strict”})();之间有什么区别?和“严格使用”?

时间:2019-05-30 14:26:13

标签: javascript function mode strict

之间有什么区别

(function () {'use strict';})(); 

"use strict"

我不知道何时,为什么要使用一个?

我认为一个严格声明完整的外部JS文档,而另一个将函数声明为严格。

当我看到人们将完整的外部JavaScript封装在以下内容中时,我会感到困惑:

(function () {'use strict';})(); 

为什么不只使用"use strict"来启动文档?

最后,我已经使用相同的代码测试了外部JS文档。 一种,我使用了"use strict",它起作用了。

另一个我用(function () {'use strict';})();括了完整的JS文档,但没有起作用。

为什么?

JavaScript是我的第一门编程语言,但它的深度让我有些不知所措。非常感谢您的耐心配合和专业的指导,感谢您为我提供的帮助或指导。

非常感谢您。

2 个答案:

答案 0 :(得分:2)

如果您

"use strict";

在文件顶部,整个文件(即文件/脚本标签中的所有代码,包括第三方库(感谢VLAZ进行澄清))都是严格的。

将其放置在IIFE中:

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

意味着仅在IIFE内部进行编码是严格的。

答案 1 :(得分:0)

好吧

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

完全没有用;它对任何东西都没有影响。

在作用域的开头,例如函数或<script>块,

"use strict";

向您要在“严格”模式下解释代码的解释器发出信号。如果它处于不执行任何操作的函数中,则对任何内容都没有有意义的影响。当然,如果您正在谈论的 actual 函数具有的代码不仅仅是"use strict";语句,那么这意味着该函数将以“严格”模式进行解释。