Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:var 3po=true;?_Javascript - Fatal编程技术网

Javascript:var 3po=true;?

Javascript:var 3po=true;?,javascript,Javascript,我在其他地方读到过一些文章,说下面的内容是非法的 var 3po = true; 但是 这是合法的 有人能解释一下这是什么意思吗?为什么第一条语句非法,而第二条语句合法?标识符不能以数字开头,正如ECMAScript语法所解释的: Identifier :: IdentifierName but not ReservedWord IdentifierName :: IdentifierStart IdentifierName IdentifierPart

我在其他地方读到过一些文章,说下面的内容是非法的

var 3po = true;
但是

这是合法的


有人能解释一下这是什么意思吗?为什么第一条语句非法,而第二条语句合法?

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

Identifier :: 
    IdentifierName but not ReservedWord 

IdentifierName :: 
    IdentifierStart 
    IdentifierName IdentifierPart 

IdentifierStart :: 
    UnicodeLetter 
    $ 
    _ 
    \ UnicodeEscapeSequence 

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

我想你的意思是法律,就语法而言


第一个示例将给出一个语法错误,原因是变量不应以数字开头。

您可以在第15页的中找到答案

IdentifierName ::
    IdentifierStart
    IdentifierName IdentifierPart

IdentifierStart ::
    UnicodeLetter
    $
    _
    \ UnicodeEscapeSequence

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

您的意思是为什么变量不应该以数字开始吗

只是客串…

见-
IdentifierName ::
    IdentifierStart
    IdentifierName IdentifierPart

IdentifierStart ::
    UnicodeLetter
    $
    _
    \ UnicodeEscapeSequence