回答:
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
これが私の詩です。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.
bencの回答を補足するには、Standard ECMA-262を参照してください。これらは公式の予約語ですが、標準を尊重するために実装を無視するのはペダントだけです。最も人気のある実装、つまりFirefoxとInternet Explorerの予約語については、bencの回答を参照してください。
EMCAScript-262の予約語は、Keyword、Future Reserved Word、NullLiteral、およびBooleanLiteralであり、キーワードは
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
今後の予約語のアール
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 sがあります
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
。
alert
は、はすでに初期化されていますが、の再割り当てを妨げるものはありませんalert = 5
。ただし、window
5に設定することはできませんが、ローカル変数として使用できます。これは、予約キーワード、将来の使用とことはできませんnull
、false
、true
。
これは、特定の文字列がJavaScriptエンジンによってキーワードとして処理されているかどうかを判断するためのブラウザーと言語バージョンに依存しない方法です。ソリューションの中核を提供するこの回答への謝辞。
function isReservedKeyword(wordToCheck) {
var reservedWord = false;
if (/^[a-z]+$/.test(wordToCheck)) {
try {
eval('var ' + wordToCheck + ' = 1');
} catch (error) {
reservedWord = true;
}
}
return reservedWord;
}
eval
何かに使用する必要がある場合、それはおそらくあなたがそれを間違っていることを意味します。
現在の回答では、ES-Dialectに関係なく、ブラウザがESの指示に加えて、独自の予約済みキーワード、メソッドなどのリストを持つ傾向があることを警告していません。
たとえば、IE9はのような論理名の使用を禁止します:addFilter
、removeFilter
(それらは、とりわけ、方法を予約されています)。
IE9固有のより広範な「現在知られている」リストについては、http://www.jabcreations.com/blog/internet-explorer-9を参照してください。私はまだmsdn(または他の場所)でそれらへの公式の参照を見つけていません。
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
bencの答えは素晴らしいですが、私の2セントにとって、私はこれに関するw3schoolsのページが好きです。
http://www.w3schools.com/js/js_reserved.asp
標準で予約されているキーワードのリストに加えて、特定のコンテキストで避けるべきキーワードの長いリストもあります。たとえば、alert
ブラウザで実行するコードを記述するときに名前を使用しません。特定の単語がキーワードではないことがわかっていたにもかかわらず、エディターでキーワードとして強調表示されている理由を理解するのに役立ちました。