Javascript:var 3po = true;?

时间:2011-10-24 08:34:08

标签: javascript

我读了一些其他地方,以下是非法的

var 3po = true;

但是

var highNoon = false;

是合法的。

有人可以解释这是什么意思吗?为什么第一个陈述是非法的而第二个是合法的呢?

4 个答案:

答案 0 :(得分:7)

标识符不能以ECMAScript语法解释的数字开头:

Identifier :: 
    IdentifierName but not ReservedWord 

IdentifierName :: 
    IdentifierStart 
    IdentifierName IdentifierPart 

IdentifierStart :: 
    UnicodeLetter 
    $ 
    _ 
    \ UnicodeEscapeSequence 

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

答案 1 :(得分:2)

我认为你的意思是合法的,因为在语法方面?

第一个例子会给你一个SyntaxError,原因是变量不应该以数字开头。

答案 2 :(得分:0)

您可以在EcmaScript documentation,第15页找到答案。

IdentifierName ::
    IdentifierStart
    IdentifierName IdentifierPart

IdentifierStart ::
    UnicodeLetter
    $
    _
    \ UnicodeEscapeSequence

因此,标识符可以从字母,$,_或unicode转义序列开始,而不是数字。

答案 3 :(得分:-1)

您是否有可能表示“为什么变量不应以数字开头?”

猜对了......