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

Какие ключевые слова JavaScript (имена функций, переменные и т.д.) Зарезервированы?

Ответ 2

Вот мое стихотворение, которое включает в себя все зарезервированные ключевые слова в JavaScript, и посвящено тем, кто остается честным в данный момент, а не просто пытается забить:

Let this long package float, 
Goto private class if short.
While protected with debugger case,  
Continue volatile interface.
Instanceof super synchronized throw, 
Extends final export throws.  

Try import double enum?  
- False, boolean, abstract function, 
Implements typeof transient break!
Void static, default do,  
Switch int native new. 
Else, delete null public var 
In return for const, true, char
…Finally catch byte.

Ответ 3

Чтобы добавить ответ benc, см. Стандарт ECMA-262. Это официальные зарезервированные слова, но только педант игнорирует реализацию, чтобы соблюдать стандарт. Для зарезервированных слов самых популярных реализаций, которые являются firefox и Internet explorer, см. Ответ benc.

Зарезервированными словами в EMCAScript-262 являются ключевые слова, будущие зарезервированные слова, NullLiteral и BooleanLiterals, где ключевые слова

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

Будущее зарезервированное слово s

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

NullLiteral -

null

а логические литеры -

true
false

Ответ 4

Я просто читал об этом в JavaScript & jQuery: The Missing Manual:

Не все эти зарезервированные слова вызовут проблемы во всех браузерах, но лучше всего избегать этих имен при именах переменных.

Ключевые слова JavaScript: break, case, catch, continue, debugger, default, delete, do, else, false, finally, for, function, if, in, instanceof, new, null, return, switch, this, throw, true, try, typeof, var, void, while, with.

Зарезервировано для будущего использования: abstract, boolean, byte, char, class, const, double, enum, export, extends, final, float, goto, implements, import, int, interface, let, long, native, package, private, protected, public, short, static, super, synchronized, throws, transient, volatile, yield.

Предопределенные глобальные переменные в браузере: alert, blur, closed, document, focus, frames, history, innerHeight, innerWidth, length, location, navigator, open, outerHeight, outerWidth, parent, screen, screenX, screenY, statusbar, window,

Ответ 6

Я провел некоторое исследование этого времени и опубликовал результаты здесь: Зарезервированные ключевые слова в JavaScript. В нем перечислены зарезервированные ключевые слова для каждой версии языка ECMAScript на основе исходных спецификаций (т.е. Прямо из устья лошади). Ни один из других ресурсов, которые я нашел, не сделал.

Ответ 7

Астрономический способ браузера и языка, чтобы определить, обрабатывается ли конкретная строка ключевым словом движком JavaScript. Кредиты на этот ответ, который обеспечивает ядро ​​решения.

function isReservedKeyword(wordToCheck) {
    var reservedWord = false;
    if (/^[a-z]+$/.test(wordToCheck)) {
        try {
            eval('var ' + wordToCheck + ' = 1');
        } catch (error) {
            reservedWord = true;
        }
    }
    return reservedWord;
}

Ответ 8

Ни один из текущих ответов не предупреждает о том, что независимо от ES-Dialect браузеры имеют свои собственные списки зарезервированных ключевых слов, методы и т.д., помимо того, что диктует ES.

Например, IE9 запрещает использование логических имен, таких как: addFilter, removeFilter (они, среди прочего, являются зарезервированными методами).

См. http://www.jabcreations.com/blog/internet-explorer-9 для более обширного "известного в настоящее время" списка, относящегося к IE9. Я еще не нашел официальной ссылки на них в msdn (или в другом месте).

Ответ 9

Вот список из книги Eloquent JavaScript:

  • break
  • case
  • catch
  • class
  • const
  • continue
  • debugger
  • default
  • delete
  • do
  • else
  • enum
  • export
  • extend
  • false
  • finally
  • for
  • function
  • if
  • implements
  • import
  • in
  • instanceof
  • interface
  • let
  • new
  • null
  • package
  • private
  • protected
  • public
  • return
  • static
  • super
  • switch
  • this
  • throw
  • true
  • try
  • typeof
  • var
  • void
  • while
  • with
  • yield

Ответ 10

Ответ на benc отлично, но для моих двух центов мне нравится страница w3schools:

http://www.w3schools.com/js/js_reserved.asp

В дополнение к листингу ключевых слов, зарезервированных стандартом, он также содержит длинный список ключевых слов, которые следует избегать в определенных контекстах; например, не используя имя alert при написании кода для запуска в браузере. Это помогло мне понять, почему определенные слова выделялись как ключевые слова в моем редакторе, хотя я знал, что они не являются ключевыми словами.