2009-01-22 3 views
2

J'ai récemment raccourcissait rapidement des noms de méthode dans un fichier javascript et a couru dans un problème quand je converti un nom de méthode:Démarrer des noms de classe ou de méthode avec des nombres, pourquoi pas?

Avant:

RefreshSevenDayGrid(){ 
    // some stuff 
} 

Après:

7Day() {  
    // some stuff 
} 

Je rapidement découvert que le javascript ne fonctionnait plus. J'ai entendu de plusieurs personnes que les nombres ne devraient jamais être employés pour des noms de méthode ou de classe. Y a-t-il une exception à cela?

Répondre

6

Outre ce que Jeffrey Hantin dit, il y a des constantes numériques telles que

3e7 // 3x10^7 
40L // C, C++, etc for a long integer 
0x88 // hexadecimal 

La convention générale des identificateurs qui est largement utilisé dans la plupart des langues, est [S except for 0-9][S]* où S est une série de caractères valides (AZ, az , 0-9, parfois _, $, ou -) - donc le premier caractère ne peut pas être un chiffre mais le reste peut.

7

Il tend à provoquer des ajustements pour les analyseurs de langage. Il voit un chiffre principal, donc s'attend à commencer à lire un littéral numérique, puis barfs quand il voit une lettre. Même la convention algébrique est qu'un nombre à gauche d'une lettre est un littéral numérique séparé avec l'espace omis, donc 7x serait vu comme deux jetons.

Questions connexes