Mots clés réservés en JavaScript

Quels mots-clés JavaScript (noms de fonctions, variables, etc.) sont réservés?

152
demandé sur Rich Churcher 2008-08-25 19:29:39

8 réponses

Nous devrions être un lien vers les sources d'information réelles, plutôt que juste le Top Google hit.

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
répondu benc 2018-09-04 21:33:55

Voici mon poème, qui comprend tous les mots réservés en JavaScript, et est dédié à ceux qui restent honnêtes dans l'instant, et pas seulement essayer de marquer:

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
répondu art4theSould 2017-03-06 13:12:18

Pour compléter la réponse de benc , Voir la norme ECMA-262. Ce sont les mots réservés officiels, mais seul un pédant ignore la mise en œuvre pour respecter la norme. Pour les mots réservés des implémentations les plus populaires, c'est-à-dire firefox et internet explorer, voir la réponse de benc.

Les mots réservés dans EMCAScript-262 sont les Clés, Futurs Mot Réservés, NullLiteral, et BooleanLiteral, où l' Les mots-clés sont

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

Les futurs mots réservés sont

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

Le NullLiteral est

null

Et le BooleanLiteralsont

true
false
59
répondu Joseph Holsten 2016-06-17 22:17:15

Je lisais à ce sujet dans JavaScript & jQuery: Le manuel manquant:

Tous ces mots réservés ne causeront pas de problèmes dans tous les navigateurs, mais il est préférable d'éviter ces noms lors de la désignation des variables.

Mots-clés 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.

Réservé pour une utilisation future: 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.

Variables globales prédéfinies dans le navigateur: alert, blur, closed, document, focus, frames, history, innerHeight, innerWidth, length, location, navigator, open, outerHeight, outerWidth, parent, screen, screenX, screenY, statusbar, window.

19
répondu its_me 2016-05-25 04:36:58

Voici un navigateur et une version de langue agnostique pour déterminer si une chaîne particulière est traitée comme un mot-clé par le moteur JavaScript. Crédits à cette réponse qui fournit le noyau de la solution.

function isReservedKeyword(wordToCheck) {
    var reservedWord = false;
    if (/^[a-z]+$/.test(wordToCheck)) {
        try {
            eval('var ' + wordToCheck + ' = 1');
        } catch (error) {
            reservedWord = true;
        }
    }
    return reservedWord;
}
5
répondu GOTO 0 2017-05-23 12:02:48

Aucune des réponses actuelles n'avertit que quel que soit le dialecte ES, les navigateurs ont tendance à avoir leurs propres listes de mots-clés réservés, De méthodes, etc. en plus de ce que dicte ES.

Par exemple, IE9 interdit l'utilisation de noms logiques tels que: addFilter, removeFilter (Ils, entre autres, sont des méthodes réservées).

Voir http://www.jabcreations.com/blog/internet-explorer-9 pour une liste plus étendue 'actuellement connue' spécifique à IE9. J'ai encore trouvé une référence officielle à eux sur msdn (ou ailleurs).

2
répondu GitaarLAB 2015-05-08 18:39:58

Voici une liste de Eloquent JavaScript

1
répondu starhopperx 2018-01-05 13:19:51

La réponse de Benc est excellente, mais pour mes deux cents, j'aime la page de w3schools sur ceci:

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

En plus de lister les mots-clés réservés par la norme, il a aussi une longue liste de mots-clés que devrait éviter dans certains contextes; par exemple, ne pas utiliser le nom alert lors de l'écriture du code à exécuter dans un navigateur. Cela m'a aidé à comprendre pourquoi certains mots étaient mis en évidence comme mots clés dans mon éditeur même si je savais ils n'étaient pas des mots-clés.

-1
répondu Reikim 2016-03-24 05:08:47