为什么 JavaScript 变量会以美元符号开头?

2022-08-29 22:08:02

我经常看到JavaScript的变量以美元符号开头。何时/为什么会选择以这种方式为变量添加前缀?

(我不是在问你在jQuery和其他语法中看到的语法,而是像和$('p.foo')$name$order)


答案 1

jQuery中非常常见的用途是将存储在变量中的jQuery对象与其他变量区分开来。

例如,我会定义:

var $email = $("#email"); // refers to the jQuery object representation of the dom object
var email_field = $("#email").get(0); // refers to the dom object itself

我发现这在编写jQuery代码时非常有帮助,并且可以轻松查看具有不同属性集的jQuery对象。


答案 2

在 ECMAScript 的第 1 版、第 2 版和第 3 版中,规范明确不鼓励使用 $ 前缀的变量名,除非在自动生成的代码的上下文中:

标识符中的任何位置都允许使用美元符号 () 和下划线 ()。美元符号仅用于机械生成的代码。$_

但是,在下一个版本(第5版,当前版本)中,此限制被删除,并且上面的段落被替换为

美元符号 () 和下划线 () 在标识符名称中的任何位置都允许使用。$_

因此,$ 符号现在可以在变量名称中自由使用。某些框架和库对符号的含义有自己的约定,在这里的其他答案中指出。