ECMAScript 多个 Prologue 指令

gre*_*reg 5 javascript ecmascript-5

某些 ECMAScript 环境允许通过指令序言切换到特殊模式。ECMAScript 5 有“use strict”,其他如asm有自己的“use asm”。

指令序言中的文档是用一种对我的理解水平来说有点迟钝的语言编写的。构建具有多个指令的指令序言的正确方法是什么?我的预感是:

function(){
  "use foo";
  "use bar";
}
Run Code Online (Sandbox Code Playgroud)

但我不确定。

Ber*_*rgi 3

构建具有多个指令的指令序言的正确方法是什么?

正如您链接的规范所说,

aDirective Prologue是[在脚本或函数的开头]发生的最长的产生式序列并且其中每个[其中]完全由 a 组成。ExpressionStatementStringLiteral

因此,您可以将它们串在一起,每个字符串文字语句都是一个指令;并且可以具有特定于实现的含义(仅指定 Use-Strict-Directive)。你的预感是正确的,这应该有效:

"use bar"
"use strict"; 'use x';
'use foo';
Run Code Online (Sandbox Code Playgroud)