Ключевые и зарезервированные слова языка JavaScript

Ключевые и зарезервированные слова языка JavaScript
5 (100%) 2 votes

JavaScript (Стандарт ЕСМА-262) определяет набор ключевых слов (keywords), служащих для решения специализированных задач, таких как указание начала или конца управляющей инструкции или выполнение специфической операции. Ключевые слова нельзя использовать как идентификаторы и имена свойств. Вот их полный список (ключевое слово со звездочкой было добавлено в пятой редакции).

  • break
  • case
  • catch
  • continue
  • debugger*
  • default
  • delete
  • do
  • else
  • finally
  • for
  • function
  • if
  • in
  • instanceof
  • new
  • return
  • switch
  • this
  • throw
  • try
  • typeof
  • var
  • void
  • while
  • with

Кроме того, JavaScript (ЕСМА-262) содержит набор зарезервированных слов (reserved words), которые также нельзя использовать как идентификаторы и имена свойств. Хотя эти слова не имеют специфического применения в языке, они зарезервированы на будущее как потенциальные ключевые слова. Вот полный список зарезервированных слов JavaScript (третьей редакции ЕСМА-262):

  • abstract
  • boolean
  • byte
  • char
  • class
  • const
  • debugger
  • double
  • enum
  • export
  • extends
  • final
  • float
  • goto
  • implements
  • import
  • int
  • interface
  • long
  • native
  • package
  • private
  • protected
  • public
  • short
  • static
  • super
  • synchronized
  • throws
  • transient
  • volatile

В пятой редакции список зарезервированных слов в строгом режиме сокращается до следующего:

  • class
  • const
  • enum
  • export
  • extends
  • import
  • super

В строгом режиме в пятой редакции в этот список добавляются следующие слова:

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static
  • yield

Обратите внимание, что слова let и yield были зарезервированы в пятой редакции, а все остальные — в третьей. Ради совместимости рекомендуется брать за ориентир список из третьей редакции, добавляя в него слова let и yield.

Попытка использовать ключевое слово как имя идентификатора в реализациях ECMAScript 3 приводит к ошибке «Identifier Expected» (ожидается идентификатор). Применение зарезервированного слова с этой же целью в одних реализациях допускается, а в других приводит к ошибке.

В пятой редакции немного изменены правила употребления ключевых и зарезервированных слов. Они по-прежнему не могут быть идентификаторами, но теперь их разрешено использовать как имена свойств в объектах. В общем, для обеспечения совместимости с прошлыми и будущими редакциями ECMAScript лучше не использовать ключевые и зарезервированные слова как идентификаторы и имена свойств.

Кроме ключевых и зарезервированных слов в пятой редакции ЕСМА-262 налагаются ограничения на имена eval и arguments. В строгом режиме они не могут быть идентификаторами и именами свойств, иначе возникнет ошибка.

Полный список уроков JavaScript представлен на этом странице.


Об авторе

Занимаюсь программированием уже более 7 лет. Часто использую JavaScript (Node.js) и Python.

Комментарии