在每个文件中使用“function()”use strict'“有什么好处?

时间:2017-02-09 17:44:59

标签: javascript angularjs

我正在重构旧的AngularJS 1.3项目。我注意到的一件事是,制作它的人开始使用AngularJS代码的每个文件:

(function () {
'use strict';

  angular.module('app').factory('Employees', ['$http', function($http) {
    // angular code removed
  }]);

})();

在每个文件中使用function()'use strict'对代码有什么好处吗?对我而言,每个文件中都浪费了3行。是否有标准/最佳实践?

2 个答案:

答案 0 :(得分:1)

如果您将'use strict';放在IIFE之外,则可以将其设为全局。

这意味着您无法控制的代码(例如其他库)可能会导致问题。

就像变量范围一样,你只能在代码的上下文中使用'use strict',只需将它全部放在IIFE中

答案 1 :(得分:0)

使用use strict可以帮助您防止闭包和变量范围出现问题。

例如,如果您不小心设置了全局变量 - 在这种情况下忘记在var循环中添加for关键字, {{1} 模式将捕获它并进行消毒。

use strict
(function(){
  for (i = 0; i < 5; i++){
  }
  console.log(i);
})();

.as-console-wrapper { max-height: 100% !important; top: 0; }
(function(){
  'use strict';
  for (i = 0; i < 5; i++){
  }
  console.log(i);
})();