Zarezerwowane słowa kluczowe w JavaScript

Jakie słowa kluczowe JavaScript (nazwy funkcji, zmienne itp.) są zastrzeżone?

Author: Rich Churcher, 2008-08-25

8 answers

Powinniśmy linkować do rzeczywistych źródeł informacji, a nie tylko do topowego hitu 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

 104
Author: benc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-04 21:33:55

Oto mój wiersz, który zawiera wszystkie zastrzeżone słowa kluczowe w JavaScript, i jest dedykowany dla tych, którzy pozostają uczciwi w danej chwili, a nie tylko starają się zdobyć:

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.
 1423
Author: art4theSould,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-06 13:12:18

Aby uzupełnić odpowiedź benca , Zobacz Standard ECMA-262 . Są to oficjalne słowa zastrzeżone, ale tylko pedant ignoruje implementację, aby szanować standard. Słowa kluczowe najpopularniejszych implementacji, czyli firefox i internet explorer, znajdują się w odpowiedzi benca.

Słowa zarezerwowane w EMCAScript-262 to słowo kluczowe s, przyszłe słowo zarezerwowane s, NullLiteral oraz BooleanLiteral s, gdzie słowa kluczowe to

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

The Future Reserved Word s are

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

Nulliteral jest

null

I BooleanLiteral S są

true
false
 59
Author: Joseph Holsten,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-17 22:17:15

Właśnie o tym czytałem w JavaScript & jQuery: the Missing Manual:

nie wszystkie z tych słów zastrzeżonych będą powodować problemy we wszystkich przeglądarkach, ale najlepiej unikać tych nazw podczas nazywania zmiennych.

Słowa kluczowe 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.

Zarezerwowane do wykorzystania w przyszłości: 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.

Wstępnie zdefiniowane zmienne globalne w przeglądarce: alert, blur, closed, document, focus, frames, history, innerHeight, innerWidth, length, location, navigator, open, outerHeight, outerWidth, parent, screen, screenX, screenY, statusbar, window.

 19
Author: its_me,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-25 04:36:58

Tutaj jest przeglądarka i wersja językowa agnostyczny sposób, aby określić, czy dany ciąg jest traktowany jako słowo kluczowe przez silnik JavaScript. Podziękowania dla tej odpowiedzi , która stanowi rdzeń rozwiązania.

function isReservedKeyword(wordToCheck) {
    var reservedWord = false;
    if (/^[a-z]+$/.test(wordToCheck)) {
        try {
            eval('var ' + wordToCheck + ' = 1');
        } catch (error) {
            reservedWord = true;
        }
    }
    return reservedWord;
}
 5
Author: GOTO 0,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:48

Żadna z aktualnych odpowiedzi nie ostrzega, że niezależnie od dialektu ES, przeglądarki mają zwykle własne listy zarezerwowanych słów kluczowych, metod itp.

Na przykład IE9 zabrania używania nazw logicznych, takich jak: addFilter, removeFilter (są to m.in. metody zarezerwowane).

Zobacz http://www.jabcreations.com/blog/internet-explorer-9 dla bardziej obszernej "obecnie znanej" listy specyficznej dla IE9. Nie znalazłem jeszcze żadnych oficjalnych odniesień do nich na msdn (lub gdzie indziej).

 2
Author: GitaarLAB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-08 18:39:58

Oto lista z wymownego JavaScript

 1
Author: starhopperx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-05 13:19:51

ODPOWIEDŹ Benca jest doskonała, ale za moje dwa grosze podoba mi się strona w3schools na ten temat:

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

Oprócz listy słów kluczowych zarezerwowanych przez standard, zawiera również długą listę słów kluczowych, których należy unikać w pewnych kontekstach; na przykład, nie używając nazwy alert podczas pisania kodu uruchamianego w przeglądarce. To pomogło mi dowiedzieć się, dlaczego niektóre słowa były podświetlane jako słowa kluczowe w moim edytorze, mimo że wiedziałem to nie były słowa kluczowe.

 -1
Author: Reikim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-24 05:08:47