我偶然发现了人们选择称之为“序言指令”的东西。更为人所熟知的“使用严格”; JavaScript中的字符串文字。我已经知道的一切。但是共同点是Prologue指令。这是什么?关于此主题的文档很少。最好的一个是我链接的问题。

ECMAScript multiple Prologue Directives

我的问题很普遍:

这些是什么?

它们可以用来做什么?

谁在使用它们,为什么?

我可以做吗?

我是不是该?

最佳答案

无需文档。只要看看the source即可。



换句话说,“指令序言”是在函数或程序的确切开始处(顶级代码)的字符串文字+分号的最长序列:

(function(){
  "use strict"; // <-- Directive Prologue
})()

或者:
(function() {
  // Directive Prologue start
  "foo bar"
  "baz";
  '123';
  '';
  // Directive Prologue end
})();

或者:
'blah'; // <-- Directive Prologue (top-level code)
/* rest of the code here */

请注意,一旦字符串文字不是第一个语句,它就不再是指令序言:
var x;
"use strict"; // <-- NOT a Directive Prologue

或者:
(function() {
  1 + "use magic"; // <-- NOT a Directive Prologue
})();

10-05 23:03