我还不熟悉 ECMAScript 6。我刚刚克隆了 React Starter Kit 存储库,它使用 ES6 作为应用程序代码。我很惊讶地看到 linter 被配置为禁止出现该use strict
指令,我认为这是在 ES6 之前的 JavaScript 中推荐的。那么有什么意义呢?
不建议在 ES6 中使用“use strict”?
IT技术
javascript
ecmascript-6
strict
es6-modules
2021-03-16 23:20:43
1个回答
ES6 module始终处于严格模式。引用规范的相关部分:
10.2.1 严格模式代码
可以使用不受限制或严格模式的语法和语义来处理 ECMAScript 脚本句法单元。在以下情况下,代码被解释为严格模式代码:
- 如果全局代码以包含使用严格指令的指令序言开头(参见 14.1.1),则它是严格模式代码。
- module代码始终是严格模式代码。
- ClassDeclaration 或 ClassExpression 的所有部分都是严格模式代码。
- 如果 Eval 代码以包含使用严格指令的指令序言开头,或者如果对 eval 的调用是包含在严格模式代码中的直接 eval(参见 12.3.4.1),则它是严格模式代码。
- 如果相关的 FunctionDeclaration、FunctionExpression、GeneratorDeclaration、GeneratorExpression、MethodDefinition 或 ArrowFunction 包含在严格模式代码中,或者产生函数 [[ECMAScriptCode]] 内部槽值的代码以指令序言开头,则函数代码是严格模式代码包含使用严格指令。
- 如果最后一个参数是一个字符串,则作为参数提供给内置函数和生成器构造函数的函数代码是严格模式代码,如果最后一个参数在处理时是一个以包含使用严格指令的指令序言开头的函数体。