Какие ключевые слова JavaScript (имена функций, переменные и т.д.) Зарезервированы?
Зарезервированные ключевые слова в JavaScript
Ответ 1
Мы должны привязываться к фактическим источникам информации, а не просто к хиту google.
http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Reserved_Words
JScript 8.0: http://msdn.microsoft.com/en-us/library/ttyab5c8.aspx
Я буду искать ссылки ECMAScript позже.
Ответ 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
,
Ответ 5
http://javascript.about.com/library/blreserved.htm перечисляет их довольно хорошо.
Ответ 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
при написании кода для запуска в браузере. Это помогло мне понять, почему определенные слова выделялись как ключевые слова в моем редакторе, хотя я знал, что они не являются ключевыми словами.