ECMAScript | Исходный символ (SourceCharacter)

Синтаксис

SourceCharacter ::

любая кодовая точка Unicode

Код ECMAScript выражается с помощью Unicode. Исходный текст ECMAScript представляет собой последовательность кодовых точек. Все значения кодовых точек Unicode от U+0000 до U+10FFFF, включая суррогатные кодовые точки, могут встречаться в исходном тексте, если это разрешено грамматиками ECMAScript. Фактические кодировки, используемые для хранения и обмена исходного текста ECMAScript, не имеют отношения к этой спецификации. Независимо от внешней кодировки исходного текста, соответствующая реализация ECMAScript обрабатывает исходный текст, как если бы это была эквивалентная последовательность значений исходного символа SourceCharacter, причем каждый исходный символ SourceCharacter является кодовой точкой Unicode. Соответствующие реализации ECMAScript не обязаны выполнять какую-либо нормализацию исходного текста или вести себя так, как если бы они выполняли нормализацию исходного текста.

Компоненты последовательности комбинируемых символов рассматриваются как отдельные кодовые точки Unicode, даже если пользователь может рассматривать всю последовательность как один символ.

Примечание

В строковых литералах, литералах регулярных выражений, литералах шаблонов и идентификаторах любая кодовая точка Unicode также может быть выражена с помощью управляющих последовательностей Unicode, которые явно выражают числовое значение кодовой точки. Внутри комментария такая escape-последовательность фактически игнорируется как часть комментария.

ECMAScript отличается от языка программирования Java поведением управляющих последовательностей Unicode. В программе Java, если escape-последовательность Unicode \u000A, например, встречается в однострочном комментарии, она интерпретируется как признак конца строки (кодовая точка Unicode U+000A — LINE FEED (LF)) и, следовательно, следующий код точка не является частью комментария. Точно так же, если escape-последовательность Unicode \u000A встречается в строковом литерале в программе Java, она также интерпретируется как признак конца строки, что недопустимо в строковом литерале — нужно писать \n вместо \u000A, чтобы вызвать LINE FEED (LF), чтобы быть частью значения String строкового литерала. В программе ECMAScript escape-последовательность Unicode, встречающаяся в комментарии, никогда не интерпретируется и, следовательно, не может способствовать завершению комментария. Точно так же escape-последовательность Unicode, встречающаяся в строковом литерале в программе ECMAScript, всегда вносит свой вклад в литерал и никогда не интерпретируется как признак конца строки или как кодовая точка, которая может завершать строковый литерал.

Информационные ссылки

Стандарт ECMAScript — Раздел «SourceCharacter» — https://tc39.es/ecma262/#prod-SourceCharacter

Поделись записью