为什么我看到前缀为$的JavaScript变量?

时间:2010-02-03 04:03:42

标签: javascript naming-conventions

这是一个元问题。我在SO上看到的许多JavaScript代码段都以美元符号前缀命名(例如this问题中显示的代码段的第二行$id。我不是指jQuery或其他库。我很清楚这是有效的,但在没有必要的情况下做起来似乎很尴尬。为什么人们会像这样命名他们的变量?它是否只是熟悉PHP等服务器端语言并继承其JavaScript代码?

我想也许是将变量标识为jQuery对象,例如,当您将选择的结果保存到变量中以便稍后消除重复选择时,但我没有看到任何一致的约定。

3 个答案:

答案 0 :(得分:19)

从句法上讲,美元符号本身并不意味着 - 对于翻译来说,它只是另一个角色,如_q。但是很多使用jQuery和其他类似框架的人会将包含jQuery对象的变量作为前缀加上$,以便它们易于识别,因此不会与整数或字符串之类的东西混在一起。您可以通过在jq_前加上这些变量来轻松采用相同的约定,它会产生相同的效果。

实际上,这是一种粗略的 Hungarian notation

答案 1 :(得分:4)

我有时会在变量名前加上$来表示它是一个jQuery包装的元素(最常见的是当我在函数中使用$(this)时,我会将其分配给{{1} })。

缺乏约定的部分原因可能是人们将使用不同约定的代码粘贴在一起,从而产生不一致的代码。

另外,有时候(我很少希望)那些用PHP编写程序的人会因为习惯而将$放在变量名的开头。

答案 2 :(得分:2)

我怀疑该示例中的人只是复制jQuery模式,或者习惯于PHP / Perl,而没有真正理解它没有必要且没有特殊含义。

但是,我见过[有经验的]程序员将它用于保留关键字的变量名,例如$class$this。甚至是全局的。在这种情况下,这真的是个人偏好。