Приведенные ниже выдержки относятся к ECMAScript 2017.
11.8.4 Строковые литералы, примечание 1
Строковый литерал — это ноль или более кодовых точек Unicode, заключенных в одинарные или двойные кавычки. Кодовые точки Unicode также могут быть представлены escape-последовательностью. .... Любые кодовые точки могут появляться в виде управляющей последовательности.
11.8.4 Строковые литералы, синтаксис
Нетерминальный символ EscapeSequence
имеет следующую лексическую грамматическую продукцию:
EscapeSequence ::
CharacterEscapeSequence
0 [lookahead ∉ DecimalDigit]
HexEscapeSequence
UnicodeEscapeSequence
Нетерминальный символ CharacterEscapeSequence
имеет следующую лексическую грамматическую продукцию:
CharacterEscapeSequence ::
SingleEscapeCharacter
NonEscapeCharacter
11.8.4.3 Статическая семантика: SV
Содержит такие описания, как:
SV DoubleStringCharacter::\EscapeSequence — это SV EscapeSequence.
Вопросы
- Что означает
escape sequence
в примечании 1? Попытка понять, что на самом деле делает управляющая последовательность, а не только ее лексическая грамматика. - Почему
CharacterEscapeSequence
включаетNonEscapeCharacter
? - Описания в 11.8.4.3 Статическая семантика : SV, похоже, не следует обычному соглашению ECMAScript для создания лексической грамматики. Что подразумевается под этими описаниями?
- Добавлен вопрос: указано ли в примечании 1, что кодовые точки могут быть в кавычках или, альтернативно, после escape-последовательности (например, обратной косой черты)? Это то, что подразумевается под
Any code points may appear in the form of an escape sequence
?