【问题标题】:Is it valid to use $ for variable name in JavaScript? [duplicate]在 JavaScript 中使用 $ 作为变量名是否有效? [复制]
【发布时间】:2020-10-03 16:23:58
【问题描述】:

只是想知道在JavaScript(如PHP)中在变量名前使用$是否有效。

那么我可以这样做吗:

var $x = 1; // Is this valid with the $ in front?
var y = 2; // This is valid JavaScript

我已经进行了一些测试,它似乎可以工作,但我想确保它是有效的,并且在我做之前可以在所有浏览器上工作。

【问题讨论】:

标签: javascript


【解决方案1】:

是的,它从 ECMAScript 语言规范的第一版开始就一直有效。

根据 2019 年发布的第 10 版 ECMAScript 语言规范(参见:ECMAScript Language: Lexical Grammar - Names and Keywords),变量名的语法为:

IdentifierName::
  IdentifierStart
  IdentifierName IdentifierPart

IdentifierStart::
  UnicodeIDStart
  $
  _
  \ UnicodeEscapeSequence

IdentifierPart::
  UnicodeIDContinue
  $
  \ UnicodeEscapeSequence
  <ZWNJ>
  <ZWJ>

...

如您所见,$ 在变量名中的任何位置都是有效的。

自 1997 年第一版 ECMAScript 标准发布以来,情况一直如此。第一版中的第 4.5 节 标识符 说:

标识符是一个长度不限的字符序列,其中每个字符必须是字母、十进制数字、下划线 (_) 字符或美元符号 ($) 字符,并且第一个字符不能是十进制数字。

【讨论】:

    【解决方案2】:

    Javascript 变量名可以以字母 $ 或 _ 开头。只要你的变量名不以数字开头,就可以了。

    【讨论】:

      【解决方案3】:

      有效,是的,但通常不使用的代码样式,除非它有意义。

      例如,我见过一些人使用$someVar 来表示一个 jQuery 装饰的元素。 (因为,jQuery 默认使用$ 作为它的名字。)

      除非您有特定的原因,并且在您的代码库中保持一致,否则我不建议您使用它。

      【讨论】:

        【解决方案4】:

        是的,Javascript 接受 $ 和 _ 作为变量名。它可以工作并且在任何浏览器中都有效。Check it here

        【讨论】:

          猜你喜欢
          • 2023-03-27
          • 2019-11-26
          • 1970-01-01
          • 2021-05-18
          • 1970-01-01
          • 1970-01-01
          • 2011-11-23
          • 2015-06-15
          • 1970-01-01
          相关资源
          最近更新 更多