首页 文章

不推荐在ES6中使用“use strict”?

提问于
浏览
162

我'm not familiar with ECMAScript 6 yet. I'刚刚克隆了React Starter Kit repo,它使用ES6作为应用程序代码 . 我很惊讶地发现linter是configured禁止出现 use strict 指令,我认为这是在ES6之前的JavaScript中推荐的 . 那有什么意义呢?

1 回答

  • 215

    ES6模块始终处于严格模式 . 引用the spec的相关部分:

    10.2.1严格模式代码可以使用无限制或严格模式语法和语义处理ECMAScript脚本语法单元 . 在以下情况下,代码被解释为严格模式代码:如果全局代码以包含使用严格指令的指令序言开头,则为严格模式代码(见14.1.1) . 模块代码始终是严格的模式代码 . ClassDeclaration或ClassExpression的所有部分都是严格模式代码 . 如果Eval代码以包含Use Strict Directive的Directive Prologue开头,或者对eval的调用是严格模式代码中包含的直接eval(见12.3.4.1),则Eval代码是严格模式代码 . 如果关联的FunctionDeclaration,FunctionExpression,GeneratorDeclaration,GeneratorExpression,MethodDefinition或ArrowFunction包含在严格模式代码中,或者产生函数[[ECMAScriptCode]]内部槽的值的代码以指令序言开头,则函数代码是严格模式代码包含使用严格指令 . 作为内置函数和生成器构造函数的参数提供的函数代码是严格模式代码,如果最后一个参数是一个String,处理时是一个以包含Use Strict指令的Directive Prologue开头的FunctionBody .

相关问题