我有一个非常简单的问题要问:每当我打算使用 " " 时,将代码包装在IIFE
中是一种好习惯吗?use strict
现在,我确实了解 Scope Closure 的有用性(在此处 和 此处进行了回答 ) ,或者可能更好的是,曾经如此流行的模块设计方法的有用性以及为什么 IIFE 是一个如此强大的工具,可以(不仅)在这些场景,但这不是这个问题的意义所在。
我注意到,每当您想在全局范围内使用严格模式时,大多数linter(包括 jsfiddle)确实倾向于抱怨:
将块包裹在 IIFE 中似乎可以阻止 linter 抱怨
(function(){
"use strict";
console.log("I compiled!");
})();
是否有任何理由说明为什么应该use strict;
将其保留在 IIFE 内部,或者这只是没有正当理由提出的“毫无根据的反对意见”?