Некоторые зарезервированные слова JavaScript функционируют как переменные

Крокфорд 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

Почему я могу использовать эти два зарезервированных слова в качестве имен переменных? Я пропустил что-то важное?

Ответ 1

Зарезервированные ключевые слова по ECMAScript 6

break case class catch 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

и abstract и native ( здесь) были зарезервированы как будущие ключевые слова по более старым спецификациям ECMAScript (ECMAScript 1 до 3).

всегда зарезервировано: enum

зарезервировано, если они находятся в строгом режиме:

implements package  protected  static  let  interface  private  public

зарезервированы, если они находятся в коде модуля: await

Ответ 2

Зарезервированное слово (также называемое зарезервированным идентификатором или ключевым словом) - это слово, которое нельзя использовать в качестве идентификатора, например имя переменной, функции или метки - оно "зарезервировано из использования". Зарезервированные слова или ключевые слова имеют особое значение в языках программирования. Они используются для идентификации типов данных на языке, который поддерживает систему, которые идентифицируют блоки и циклы и т.д., Поэтому их функциональность уже определена в системной библиотеке.

Включая ключевые слова или зарезервированные слова в свой код, создавайте путаницу с другими разработчиками, а также с компилятором в то время, когда вы запускаете свой код. Вот почему зарезервированные слова не позволяют использовать многие языки программирования. Есть и другие языки программирования, которые имеют похожие ключевые слова; такие как C, С++, С# и Java, они имеют общую общность.

Здесь вы можете получить самый обновленный список Зарезервированные слова в JavaScript, он также содержит полезные примеры.