⚖️identifier vs. keyword
JS ⟩ identifier ⟩ vs. keyword
there are 5 categories of identifier names:
- not keywords (always allowed as identifiers): - Math,- window,- toString,- _...
- keywords: - never allowed as identifiers: reserved word (except - await,- yield)
- contextually allowed as identifiers: namely - await,- yield.
- contextually disallowed as identifiers, in strict mode code:: - let,- static,- implements,- interface,- package,- private,- protected,- public.
- always allowed as identifiers, but also appear as keywords within certain syntactic productions, at places where identifier is not allowed: - as,- async,- from,- get,- meta,- of,- set,- target.
 
The term conditional keyword, or contextual keyword, is sometimes used to refer to the keywords that fall in the last 3 categories, and thus can be used as identifiers in some contexts and as keywords in others. 📘ECMA
Last updated
Was this helpful?