[javascript] JavaScript로 예약 된 키워드

어떤 JavaScript 키워드 (함수 이름, 변수 등)가 예약되어 있습니까?



답변

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에서 예약어는 키워드 , 미래 예약어 , 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


답변

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


답변

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

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


답변

현재 답변 중 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