Most of the characters that are prohibited to be part of variable names in JS have special meaning:
- &, *, %, ^, etc. are operators;
- @ is used for declaring decorators;
- branches (){}[] are a vital part of the language;
- _ and $ that have no special meaning can be easily used as variable names.
What about the # char? Why is it special?