以下摘录参考ECMAScript 2017。
11.8.4 字符串文字,注 1
字符串文字是用单引号或双引号括起来的零个或多个 Unicode 代码点。Unicode 代码点也可以由转义序列表示。....任何代码点都可能以转义序列的形式出现。
11.8.4 字符串文字,语法
非终结符号EscapeSequence
具有以下词法产生式:
EscapeSequence ::
CharacterEscapeSequence
0 [lookahead ∉ DecimalDigit]
HexEscapeSequence
UnicodeEscapeSequence
非终结符号CharacterEscapeSequence
具有以下词法产生式:
CharacterEscapeSequence ::
SingleEscapeCharacter
NonEscapeCharacter
11.8.4.3 静态语义:SV
包含如下描述:
DoubleStringCharacter :: \ EscapeSequence 的 SV 是 EscapeSequence 的 SV
问题
escape sequence
注1中的含义是什么?试图理解转义序列的实际作用,而不仅仅是它的词汇语法- 为什么
CharacterEscapeSequence
包括NonEscapeCharacter
? - 11.8.4.3 静态语义:SV中的描述似乎不遵循用于词法语法产生的正常 ECMAScript 约定。这些描述是什么意思?
- 添加的问题:注 1 是否说明代码点可以在引号内或在转义序列(例如反斜杠)之后?是这个意思
Any code points may appear in the form of an escape sequence
吗?