170 votes

Mots clés réservés en JavaScript

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

6 votes

1511voto

art4theSould Points 2949

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

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.

1 votes

Et si yield ?

0 votes

Ce poème est une légende ! Mais malheureusement les mots inclus étaient réservés dans l'ES3 (byte, long, etc.) qui ne sont plus réservés à partir de l'ES5, ES6 et des prochaines versions.

112voto

benc Points 685

Nous devrions créer des liens vers les sources réelles d'information, plutôt que de nous contenter de la première page de 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

63voto

Joseph Holsten Points 4116

Pour compléter réponse de benc voir Norme ECMA-262 . Ce sont les mots réservés officiels, mais seul un pédant ignore l'implémentation pour respecter la norme. Pour les mots réservés des implémentations les plus populaires, à savoir firefox et internet explorer, voir la réponse de benc.

Les mots réservés dans EMCAScript-262 sont les suivants Mot clé s, Futur mot réservé s, NullLiteral et BooléenLittéral où le 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

le site Futur mot réservé 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 site NullLiteral est

null

et le BooléenLittéral sont

true
false

0 votes

Joseph, merci d'avoir ajouté cette information. J'ai trouvé ce PDF dans Google, mais je n'ai pas eu le temps de l'ouvrir et de le lire en entier.

0 votes

Le futur mot réservé "abstract" n'est mentionné ni dans la spécification ES5 ni dans le projet ES6. D'où cela vient-il ?

2 votes

Je l'ai trouvé ! Il était présent dans ES3 comme un futur mot réservé, avec une longue liste d'autres, mais il a été supprimé dans ES5.

20voto

robintw Points 7068

20voto

its_me Points 1992

Je viens de lire un article à ce sujet dans JavaScript et jQuery : Le manuel manquant :

Ces mots réservés ne posent pas tous des problèmes dans tous les navigateurs, mais il est préférable d'éviter ces noms lorsqu'on nomme 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 .

0 votes

J'ai utilisé l'emplacement dans un script et j'ai obtenu un comportement très étrange, poste très utile.

2 votes

"Réservé pour une utilisation future" : : Tous les mots de Java... assez paresseux en fait.

2 votes

Notez que "réservé" n'est pas la même chose que "pré-initialisé". Dans le navigateur, alert est déjà initialisé, mais rien ne vous empêche de réassigner alert = 5 . Cependant, vous ne pouvez pas définir window à 5, mais vous pouvez l'utiliser comme une variable locale. Ce n'est pas possible avec les mots-clés réservés, utilisation future, null , false , true .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X