답변:
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의 답변 을 보완하려면 표준 ECMA-262를 참조하십시오 . 이 단어는 공식 예약어이지만 표준을 준수하는 구현은 무시합니다. 가장 많이 사용되는 구현, 즉 Firefox 및 인터넷 익스플로러의 예약어에 대해서는 benc의 답변을 참조하십시오.
EMCAScript-262에서 예약어는 키워드 , 미래 예약어 , 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 들입니다
true
false
let
여기에서 볼 수는 없지만 문서 에서 볼 수 있습니다 : ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
방금 JavaScript & jQuery : Missing Manual 에서 이것에 대해 읽었습니다 .
이 예약어 모두가 모든 브라우저에서 문제를 일으키는 것은 아니지만 변수 이름을 지정할 때 이러한 이름을 피하는 것이 가장 좋습니다.
자바 스크립트 키워드 :
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
브라우저에서 실행할 코드를 작성할 때 이름을 사용하지 않습니다 . 키워드가 아니라는 것을 알면서도 특정 단어가 왜 편집기에서 키워드로 강조 표시되는지 알아내는 데 도움이되었습니다.