我读了一些其他地方,以下是非法的
var 3po = true;
但是
var highNoon = false;
是合法的。
有人可以解释这是什么意思吗?为什么第一个陈述是非法的而第二个是合法的呢?
答案 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)
您是否有可能表示“为什么变量不应以数字开头?”
猜对了......