为什么JavaScript变量会以美元符号开头?
我经常看到带有以美元符号开头的变量的JavaScript。 何时/为什么要选择以这种方式为变量添加前缀?
(我没有问你在jQuery和其他人看到的$('p.foo')
语法,而是像$name
和$order
这样的普通变量)
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对象。
在ECMAScript的第1版,第2版和第3版中,除了自动生成的代码的上下文之外,使用$ -prefixed变量名称已被该规范显式阻止:
美元符号( $
)和下划线( _
)在标识符的任何地方都是允许的。 美元符号仅用于机械生成的代码。
然而,在下一个版本(第5版,这是当前版本)中,这个限制被取消了,上面的文章被替换成了
美元符号( $
)和下划线( _
)在IdentifierName的任何位置都是允许的。
因此,$符号现在可以在变量名称中自由使用。 某些框架和图书馆在符号的含义上有自己的约定,在这里的其他答案中提到。
正如其他人所提到的,美元符号旨在被机械生成的代码所使用。 然而,该公约已被一些非常流行的JavaScript库打破。 JQuery,Prototype和MS AJAX(AKA Atlas)都在其标识符中使用此字符(或作为整个标识符)。
总之,您可以随时使用$
。 (口译员不会抱怨。)问题是你想要什么时候使用它?
我个人不使用它,但我认为它的使用是有效的。 我认为MS AJAX使用它来表示一个函数是一个更详细的调用的别名。
例如:
var $get = function(id) { return document.getElementById(id); }
这似乎是一个合理的惯例。
链接地址: http://www.djcxy.com/p/2783.html上一篇: Why would a JavaScript variable start with a dollar sign?