为什么“$”是有效的函数标识符?

时间:2011-01-25 15:46:47

标签: javascript grammar

  

可能重复:
  Can someone explain the dollar sign in Javascript?
  Why would a javascript variable start with a dollar sign?

为什么我可以在Javascript中为$分配一个功能,但不是#^

4 个答案:

答案 0 :(得分:10)

来自ECMA standard(第7.6节)

  

美元符号($)和下划线   (_)允许在任何地方    IdentifierName

答案 1 :(得分:1)

原因是JavaScript是ECMA-262标准的一部分。

如果你阅读7.6节,你会看到关于 Identifier 语法的部分。

基本上可以使用的字符由:

定义
Identifier ::
  IdentifierName but not ReservedWord

IdentifierName ::
  IdentifierStart
  IdentifierName IdentifierPart

IdentifierStart ::
  UnicodeLetter
  $
  _
  \
  UnicodeEscapeSequence

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

答案 2 :(得分:0)

如果我理解你的问题,那只是因为Javascript解释器忽略$作为任何类型的特殊字符。您可以为a分配一个功能,您可以将一个功能分配给$。

就像下划线一样,它将$视为任何“正常”角色。

答案 3 :(得分:0)

因为这是ECMA-262指定的内容(参见第7.6节)

标识符必须与此RegEx匹配:[a-zA-Z_$][0-9a-zA-Z_$]*