保留了哪些 JavaScript 关键字(函数名称、变量等)?
JavaScript 中的保留关键字
这是我的诗,其中包含 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.
我们应该链接到实际的信息来源,而不仅仅是谷歌热门搜索。
http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Reserved_Words
JScript 8.0:http : //msdn.microsoft.com/en-us/library/ttyab5c8.aspx
要补充benc 的回答,请参阅标准 ECMA-262。这些是官方保留字,但只有学究无视执行以尊重标准。有关最流行的实现(即 firefox 和 Internet Explorer)的保留字,请参阅 benc 的回答。
EMCAScript-262 中的保留字是Keyword s、Future Reserved Word s、NullLiteral和BooleanLiteral s,其中关键字是
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
和BooleanLiteral是
true
false
我刚刚在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
.
这是一种浏览器和语言版本不可知的方法,用于确定 JavaScript 引擎是否将特定字符串视为关键字。归功于此答案,它提供了解决方案的核心。
function isReservedKeyword(wordToCheck) {
var reservedWord = false;
if (/^[a-z]+$/.test(wordToCheck)) {
try {
eval('var ' + wordToCheck + ' = 1');
} catch (error) {
reservedWord = true;
}
}
return reservedWord;
}