某些ECMAScript环境允许通过指令序言切换到特殊模式。 ECMAScript 5有“严格使用”,其他的如asm有自己的“使用asm”。ECMAScript多个序言指令
Directive Prologues上的文档是用一种语言写成的,它对我的理解水平有点微不足道。构建具有多个指令的指令序言的正确方法是什么?我的直觉是:
function(){
"use foo";
"use bar";
}
但我不确定。
某些ECMAScript环境允许通过指令序言切换到特殊模式。 ECMAScript 5有“严格使用”,其他的如asm有自己的“使用asm”。ECMAScript多个序言指令
Directive Prologues上的文档是用一种语言写成的,它对我的理解水平有点微不足道。构建具有多个指令的指令序言的正确方法是什么?我的直觉是:
function(){
"use foo";
"use bar";
}
但我不确定。
什么是构建一个指令序章用正确的方式多个指令?
作为spec you linked说,
一个
Directive Prologue
是最长序列的ExpressionStatement
productions发生[在开始脚本或者函数的]和其中各的他们]完全由StringLiteral
的。
所以你可以将它们串起来,每一个字符串字面语句都是一个指令;并且可以具有特定于实现的含义(仅指定使用严格指令)。您的预感是正确的,这应该工作:
"use bar"
"use strict"; 'use x';
'use foo';
由于没有人回答它,但我找到了答案,并且在评论中证实了我正在回答我自己的问题以关闭它。
是,在序言中使用多个指令一一列举了其他像这样经过:
function(){
"use foo";
"use bar";
}
或
function(){
"use foo"; "use bar";
}
您的直觉是正确的。我的直觉是,没有任何其他指令可以被任何人实际识别,至少在浏览器环境中不会被使用。 – 2013-02-15 20:06:42
是的,这是正确的。字符串文字后跟分号(可以自动插入分号)。 – kangax 2013-02-15 20:30:38
Firefox 22应该识别''使用asm';' – nilskp 2013-03-23 18:46:49