JS变量以"@"开头

m0t*_*way 0 javascript

我遇到过某人的旧代码,其中包含的变量如下:@ user_id @,@ reference_id @等等.维基百科说:"在某些JavaScript实现中,at符号(@)可用于标识符......"在JS实现中,这有用吗?我无法让它发挥作用.

Jam*_*son 6

这完全有效:

var ? = Math.PI;
Run Code Online (Sandbox Code Playgroud)

这似乎没有效果:

var @yourName = "Jamund";
Run Code Online (Sandbox Code Playgroud)

这有效:

var $yourName = "Jamund";
Run Code Online (Sandbox Code Playgroud)

如果你很无聊并想学习所有血腥的细节:http: //mathiasbynens.be/notes/javascript-identifiers

至于你的具体问题,是的,它可能是在一个注释中(JavaDoc在其注释中使用@,有时它的样式已在JS注释中使用),或者它意味着要在服务器端进行处理和替换.


kay*_*kay 6

ECMA-262,5.1版的第7.6章定义了标识符的内容.由于@是不允许的,你不应该使用它,即使一些浏览器可能会接受它.如果可能的话,您应该始终努力争取所有浏览器之间最广泛的兼容性.不使用@标识符不应该以任何方式妨碍您.

 IdentifierName ::
     IdentifierStart
     IdentifierName IdentifierPart

 IdentifierStart ::
     UnicodeLetter
     $
     _
     \ UnicodeEscapeSequence

 IdentifierPart ::
     IdentifierStart
     UnicodeCombiningMark
     UnicodeDigit
     UnicodeConnectorPunctuation
     <ZWNJ>
     <ZWJ>
Run Code Online (Sandbox Code Playgroud)