不build议在ES6中使用“严格使用”?

我还不熟悉ECMAScript 6。 我刚刚克隆了React Starter Kit回购,它使用ES6作为应用程序代码。 我惊讶地看到,linter被configuration为禁止use strict指令的出现,我认为这是在ES6之前的JavaScript中推荐的。 那么有什么意义呢?

ES6模块始终处于严格模式。 引用规范的相关部分:

10.2.1严格的模式代码

ECMAScript脚本语法单元可以使用无限制或严格模式语法和语义进行处理。 在以下情况下,代码被解释为严格的模式代码:

  • 全局代码是严格的模式代码,如果它以包含使用严格指令的指令序言开始(见14.1.1)。
  • 模块代码始终是严格的模式代码。
  • ClassDeclaration或ClassExpression的所有部分都是严格的模式代码。
  • 如果以包含使用严格指令的指令序言开始,或者对eval的调用是严格模式代码中包含的直接评估(见第12.3.4.1节),则评估代码为严格模式代码。
  • 如果在严格模式代码中包含关联的FunctionDeclaration,FunctionExpression,GeneratorDeclaration,GeneratorExpression,MethodDefinition或ArrowFunction,或者产生函数[[ECMAScriptCode]]内部插槽值的代码以Directive Prologue开头,则函数代码为严格模式代码包含使用严格指令。
  • 如果最后一个参数是一个string,那么作为参数提供给内置的函数和生成器构造函数的函数代码是严格模式代码,当处理该string时,函数体将以包含使用严格指令的指令序言开始。