某些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