2015-03-02 2 views
4

Я наткнулся на то, что люди предпочитают называть Prologue Directives. Более известный с «используйте строгий»; Строка литерала в JavaScript. Который я уже все знаю. Но общий указатель Prologue Directive. Что это? На эту тему имеется очень небольшая документация. Лучший из них - вопрос, который я связал.Что такое директивы Prologue?

ECMAScript multiple Prologue Directives

Моими вопросы являются общим:

Что они?

Для чего они могут быть использованы?

Кто их использует и почему?

Могу ли я изготовить их?

Должен ли я?

+0

я не знаю достаточно о директивах пролога вообще, чтобы ответить, но вот дополнительную информацию о [Строгий режим] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode) и [почему вы должны использовать его] (http: // cjihrig.com/blog/javascripts-strict-mode-and-why-you-should-use-it /), если сможете. Строгий режим - единственный, о котором я знаю, который широко поддерживается. В качестве вопроса, который вы связываете между собой, [ASM.js] (http://ejohn.org/blog/asmjs-javascript-compile-target/) является [поддерживается/получает поддержку] (http://www.2ality.com/ 2013/02/asm-js.html # поддержка) в нескольких браузерах. –

ответ

1

Нет необходимости в документации. Просто посмотрите в the source.

Директива Вводный является самой длинной последовательностью ExpressionStatement производств, протекающих в качестве исходного SourceElement производств в программы или FunctionBody и где каждый ExpressionStatement в последовательности состоит целиком из СтроковогоЛитерал знака следовало точки с запятой. Точка с запятой может отображаться явно или может быть вставлена ​​путем автоматической вставки точки с запятой . Директива Prologue может быть пустой .

A Используйте Строгое Директива ИнструкцияВыражение в директиве Вводной которого СтроковойЛитерал является либо точной последовательности символов «использовать строгий» или «использовать строгий». A Использовать строгую директиву может не содержать EscapeSequence или LineContinuation.

Директива Prologue может содержать более одной Инструкции по использованию Strict. Однако реализация может выдать предупреждение, если это произойдет.

Других слов, директива Вводный является самой длинной последовательностью строки буквальной + точка с запятой в точном начале функции или программы (верхний уровень код):

(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 
})(); 
+0

Что они использовали для «строгого» использования? ? – CyberFox

+0

Для других «нестандартных» директив, таких как «use asm», «use 6to5» и т. Д. Https://twitter.com/jashkenas/status/562996829777059840 – kangax

Смежные вопросы