Крокфорд JavaScript: Хорошие части содержит следующий текст.
Зарезервированные слова
В JavaScript зарезервированы следующие слова:
abstract boolean break byte case catch char class const continue debugger default delete do double else enum export extends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try typeof var volatile void while with
Большинство этих слов не используются на языке.
Они не могут использоваться для обозначения переменных или параметров. Когда зарезервировано слова используются как ключи в объектных литералах, они должны быть указаны. Oни не может использоваться с точечным обозначением, поэтому иногда необходимо вместо этого используйте нотацию:
var method; // ok var class; // illegal object = {box: value}; // ok object = {case: value}; // illegal object = {'case': value}; // ok object.box = value; // ok object.case = value; // illegal object['case'] = value; // ok
Некоторые зарезервированные слова, как представляется, не зарезервированы в моих установленных интерпретаторах. Например, в Chrome 48 (бета) и node.js 0.10.40 следующий код успешно добавит два числа, идентифицированные зарезервированными словами.
var abstract = 1;
var native = 1;
abstract + native;
> 2
Почему я могу использовать эти два зарезервированных слова в качестве имен переменных? Я пропустил что-то важное?