哪个ECMAScript 6function意味着严格的模式?

在ECMAScript 5(aka JavaScript)中,我可以通过在函数(或文件的顶部)添加"use strict"来触发严格的模式,但是这是不鼓励的。

我明白,在ECMAScript 6中,某些语法function将打开严格的模式,特别是class和模块(但是你这样做)。

在ECMAScript 6世界中,触发严格模式的完整列表是什么?

规范说:

  • 模块代码始终是严格的模式代码。
  • ClassDeclarationClassExpression的所有部分都是严格的模式代码。

其余的只是ES5中已知的东西,基本上每一个以"use strict";开头的全局/ eval /函数代码"use strict"; 指令 。 它在新的ES6函数types(箭头,生成器,方法语法)中也起作用。