Konwencje leksykalne

Plansza interaktywna październik 2014

URL:
http://www.plotkarka.eu/Pi/js/conlex.html
Autor:
Radosław Kowaluk

Wstęp (nienormatywny)

Uwagi

  1. W języku JavaScript wielkość znaków ma znaczenie.
  2. Zaleca się umieszczanie osadzonego w stronie kodu skryptu w komentarzach HTML.

InputElementDiv ::
WhiteSpace, LineTerminator, Comment, Token, DivPunctuator
InputElementRegExp ::
WhiteSpace, LineTerminator, Comment, Token, RegularExpressionLiteral

Format znaków

Code Unit ValueNameFormal NameUsage
  \u200CZero width non-joiner<ZWNJ>IdentifierPart
  \u200CZero width joiner<ZWJ>IdentifierPart
  \uFEFFByte Order Mark<BOM>Whitespace

Znaki specjalne

Code Unit ValueNameFormal Name
  \u0009Tab<TAB>
  \u000BVertical Tab<VT>
  \u000CForm Feed<FF>
  \u0020Space<SP>
  \u00A0No-break space<NBSP>
  \uFEFFByte Order Mark<BOM>
  Other category "Zs"Any other Unicode
"space separator"
<USP>
WhiteSpace ::
<TAB>, <VT>, <FF>, <SP>, <NBSP>, <BOM>, <USP>

Zakończenia lini

LineTerminator ::
<TAB>, <VT>, <CR>, <LF>, <PS>
LineTerminatorSequence ::
<TAB>, <LF>, <CR>, [lookahead ∉ <LF>], <PS>, <CR>, <LF>

Komentarze

MultiLineComment ::
/* MultiLineCommentopt */
SingleLineComment ::
/ / SingleLineCommentCharsopt

Komentarze

Znaczniki

Token ::
WhiteSpace, IdentifierName, Punctuator, NumericLiteral, StringLiteral
ReservedWord ::
Keyword, FutureReservedWord, NullLiteral, BooleanLiteral

Słowa kluczowe

Keyword :: one of
break case catch class const continue debugger default delete do else export extends finally for function if import in instanceof new return super switch this throw try typeof var void while with yield
FutureReservedWord ::
enum const

Nazwy i identyfikatory

Identifier ::
IdentifierName
IdentifierName but not ReservedWord

Identyfikatory

Instrukcja var deklaruje zmienną (opcjonalnie przypisuje jej wartość)

Symbole

Punctuator ::
{} () [] . ; , < > <= >= == != === !== + - * % ++ -- << >>
>>> & | ^ ! ~ && || ? : = += -= *= %= <<= >>= >>>= &= |= ^=
DivPunctuator ::
/ /=

Literały

Literał pusty

NullLiteral ::
null

Literały logiczne

BooleanLiteral ::
true
false

Literały numeryczne

Literały: pusty, logiczne i numeryczne

StringLiteral ::
" DoubleStringCharactersopt"
' SingleStringCharactersopt '
Łańcuchowe, pojedyncze sekwencje znaków
SekwencjaCode Unit ValueNazwaSymbol
\b\u0008backspace <BS>
\t\u0009horizontal tab <HT>
\n\u000Aline feed (new line) <LF>
\v\u000Bvertical tab <VT>
\f\u000Cform feed <FF>
\r\u000Dcarriage return <CR>
\"\u0022double quote "
\'\u0027single quote '
\\\u005Cbackslash \

Literał łańcuchowy i sekwencje

Literał wyrażeń regularnych

RegularExpressionLiteral ::
/ RegularExpressionBody / RegularExpressionFlags

Literał wyrażeń regularnych

Literał
to jednostka leksykalna reprezentująca wartość wpisaną bezpośrednio w kod programu.

Literał szablonu6th

Template ::
NoSubstitutionTemplate
TemplateHead
NoSubstitutionTemplate ::
` TemplateCharactersopt `
TemplateHead ::
` TemplateCharactersopt ${

Literał szablonu

Wstawianie średników

Zasady automatycznego wstawiania średników

Przykłady automatycznego wstawiania średników

Wstawianie średników