Комментарии могут быть однострочными или многострочными. Многострочные комментарии не могут быть вложенными.
Поскольку однострочный комментарий может содержать любую кодовую точку Unicode, кроме кодовой точки LineTerminator, и из-за общего правила, согласно которому токен всегда является максимально длинным, однострочный комментарий всегда состоит из всех кодовых точек из маркера // до конца строки. Однако LineTerminator в конце строки не считается частью однострочного комментария; он распознается лексической грамматикой отдельно и становится частью потока входных элементов для синтаксической грамматики. Этот момент очень важен, поскольку подразумевает, что наличие или отсутствие однострочных комментариев не влияет на процесс автоматической вставки точки с запятой (смотри раздел 12.9).
Комментарии ведут себя как пробелы и отбрасываются, за исключением того, что если MultiLineComment содержит кодовую точку ограничителя строки, то весь комментарий считается LineTerminator для целей синтаксического анализа синтаксической грамматикой.
Синтаксис Комментария
Comment ::
/* MultiLineCommentChars opt */
MultiLineNotAsteriskChar MultiLineCommentChars opt
* PostAsteriskCommentChars opt
MultiLineNotForwardSlashOrAsteriskChar MultiLineCommentChars opt
* PostAsteriskCommentChars opt
SourceCharacter но не *
MultiLineNotForwardSlashOrAsteriskChar ::
SourceCharacter но не один из / или *
// SingleLineCommentChars opt
SingleLineCommentChar SingleLineCommentChars opt
SourceCharacter но не LineTerminator
Некоторым производствам в этом разделе даются альтернативные определения в разделе B.1.1.
Информационные ссылки
ECMAScript | Язык ECMAScript: лексическая грамматика
Стандарт ECMAScript - Раздел "12.4 Comments" - https://tc39.es/ecma262/#sec-comments