Identifiers can contain any UnicodeLetter
. On top of that, they may also contain UnicodeEscapeSequence
. An IdentifierName
may not match a reserved word
Furthermore, of all the Unicode classes, the first character may only be a UnicodeLetter
(but also a $
cannot add a character to an identifier that would otherwise be illegal.
Two identifiers are only equal to eachother if they are represented by the same character sequence in the source text. This means that foo
will NOT refer to the same variable, even though their names evaluate to the same string (\u0066 is the character 'f').