JavaScript로 예약 된 키워드


답변:



1476

다음은 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.


61

benc의 답변 을 보완하려면 표준 ECMA-262를 참조하십시오 . 이 단어는 공식 예약어이지만 표준을 준수하는 구현은 무시합니다. 가장 많이 사용되는 구현, 즉 Firefox 및 인터넷 익스플로러의 예약어에 대해서는 benc의 답변을 참조하십시오.

EMCAScript-262에서 예약어는 키워드 , 미래 예약어 , NullLiteralBooleanLiteral입니다 . 여기서 키워드

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

조셉, 정보를 추가 해주셔서 감사합니다. Google에서 PDF를 찾았지만 PDF를 열고 읽을 시간이 없었습니다.
benc

"추상적 인"미래 예약어는 ES5 사양이나 ES6 초안에 언급되지 않았습니다. 어디에서 왔습니까?
Vladimir Panteleev

2
그것을 발견! ES3에는 다른 예약어와 함께 미래의 예약어로 존재했지만 ES5에서는 제거되었습니다.
Vladimir Panteleev

13
이것이 어떤 대답입니까? 운이 없어요.
Gajus

1
let여기에서 볼 수는 없지만 문서 에서 볼 수 있습니다 : ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
prosti

20

방금 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 .


스크립트에서 위치를 사용하고 매우 이상한 행동, 매우 유용한 게시물을 얻었습니다.
alimack

2
"나중에 사용하기 위해 예약 됨":: 모든 Java 단어 ... 정말 게으르다.
Eddie B

2
"예약 됨"은 "사전 초기화 됨"과 동일하지 않습니다. 브라우저에서 alert이미 초기화되었지만 아무것도 재 할당을 막을 수있는 것은 없습니다 alert = 5. 그러나 window5로 설정할 수는 없지만 로컬 변수로 사용할 수 있습니다. 즉, 예약 된 키워드, 미래의 사용으로 가능하지, null, false, true.
Ruben Verborgh

yield빠른 확인으로 더 많은 투표를 놓친 답변 이 +1됩니다. ES5.1에서는 엄격 모드로 활성화 할 수 있습니다.implements interface let package private protected public static yield

5

다음은 특정 문자열이 JavaScript 엔진에 의해 키워드로 취급되는지 여부를 판별하는 브라우저 및 언어 버전과 무관 한 방법입니다. 솔루션의 핵심을 제공하는 이 답변에 대한 크레딧 .

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

7
eval어떤 용도 로든 사용해야 할 경우 , 잘못하고 있다는 의미 일 가능성이 높습니다.
SeinopSys

8
이것은 빌드 타임에 테스트 케이스 실행에 적합하며 런타임에 노출 된 것이 아닌 한 완전히 유효합니다.
압둘라 지 발리

3

현재 답변 중 ES-Dialect에 관계없이 브라우저는 ES가 지시하는 것 외에도 자체 예약 키워드, 방법 등의 목록이있는 경향이 있다고 경고하지 않습니다.

예를 들어, IE9 같은 논리 이름의 사용을 금지 addFilter, removeFilter(그들은, 다른 사람의 사이에서, 방법을 예약되어 있습니다).

IE9에 대한보다 광범위한 '현재 알려진'목록 은 http://www.jabcreations.com/blog/internet-explorer-9 를 참조 하십시오 . 나는 아직 msdn (또는 다른 곳)에서 공식적인 언급을 찾았습니다.


1

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

-1

benc의 대답은 훌륭하지만 내 2 센트의 경우 w3schools 페이지가 마음에 듭니다.

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

표준에 의해 예약 된 키워드 목록 외에도, 그것은 또한 당신이 키워드의 긴 목록이 있어야 특정 상황에서 피를; 예를 들어, alert브라우저에서 실행할 코드를 작성할 때 이름을 사용하지 않습니다 . 키워드가 아니라는 것을 알면서도 특정 단어가 왜 편집기에서 키워드로 강조 표시되는지 알아내는 데 도움이되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.