2011-10-24 3 views
0

J'ai lu quelque part d'autre qui suit est illégaleJavascript: var 3po = true ;?

var 3po = true; 

mais

var highNoon = false; 

est légal.

Quelqu'un pourrait-il expliquer ce que tout cela signifie? Pourquoi la première déclaration est illégale alors que la seconde est légale?

+0

voir - http://stackoverflow.com/questions/342152/why-cant-variable-names-start-with-numbers –

Répondre

2

Je pense que vous voulez dire juridique que dans la syntaxe sage?

Le premier exemple vous donnera une erreur de syntaxe, la raison en est que les variables ne doivent pas commencer par un nombre.

7

Un identifiant ne peut pas commencer par un numéro comme la grammaire ECMAScript explique:

Identifier :: 
    IdentifierName but not ReservedWord 

IdentifierName :: 
    IdentifierStart 
    IdentifierName IdentifierPart 

IdentifierStart :: 
    UnicodeLetter 
    $ 
    _ 
    \ UnicodeEscapeSequence 

IdentifierPart :: 
    IdentifierStart 
    UnicodeCombiningMark 
    UnicodeDigit 
    UnicodeConnectorPunctuation 
    <ZWNJ> 
    <ZWJ> 
0

Vous pouvez trouver la réponse dans la EcmaScript documentation page 15.

IdentifierName :: 
    IdentifierStart 
    IdentifierName IdentifierPart 

IdentifierStart :: 
    UnicodeLetter 
    $ 
    _ 
    \ UnicodeEscapeSequence 

Ainsi, l'identifiant peut commencer à partir de la lettre, $, _ ou d'une séquence d'échappement unicode, pas le chiffre.

-1

Est-il possible que vous vouliez dire "Pourquoi les variables ne devraient pas commencer par un nombre?"

Juste guesing ...