Cyb*_*Fox 5 javascript ecmascript-5
我偶然发现了人们选择称之为Prologue Directives的东西.更常见的是"使用严格"; JavaScript中的字符串文字.我已经知道了.但共同点是Prologue Directive.这是什么?关于这个主题的文献很少.最好的一个是我联系的问题.
我的问题是通用的:
这些是什么?
它们可以用于什么?
谁使用它们,为什么?
我能做到吗?
我是不是该?
无需文档。只需查看源代码即可。
指令序言是最长的 ExpressionStatement 产品序列,作为程序或 FunctionBody 的初始 SourceElement 产品出现,并且序列中的每个 ExpressionStatement 完全由紧跟分号的 StringLiteral 标记组成。分号可以明确出现,也可以通过自动分号插入来插入。指令序言可能是一个空序列。
Use Strict 指令是指令序言中的表达式语句,其 StringLiteral 是确切的字符序列“use strict”或“use strict”。使用严格指令不能包含 EscapeSequence 或 LineContinuation。
指令序言可以包含多个使用严格指令。但是,如果发生这种情况,实现可能会发出警告。
换句话说,指令序言是函数或程序(顶级代码)精确开始处的最长字符串文字+分号序列:
(function(){
"use strict"; // <-- Directive Prologue
})()
Run Code Online (Sandbox Code Playgroud)
或者:
(function() {
// Directive Prologue start
"foo bar"
"baz";
'123';
'';
// Directive Prologue end
})();
Run Code Online (Sandbox Code Playgroud)
或者:
'blah'; // <-- Directive Prologue (top-level code)
/* rest of the code here */
Run Code Online (Sandbox Code Playgroud)
请注意,只要字符串文字不是第一个语句,它就不再是指令序言:
var x;
"use strict"; // <-- NOT a Directive Prologue
Run Code Online (Sandbox Code Playgroud)
或者:
(function() {
1 + "use magic"; // <-- NOT a Directive Prologue
})();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
641 次 |
| 最近记录: |