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

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


当前回答

如果你看到美元符号($)或双美元符号($$),并想知道这在Prototype框架中意味着什么,下面是你的答案:

$$('div');
// -> all DIVs in the document.  Same as document.getElementsByTagName('div')!

$$('#contents');
// -> same as $('contents'), only it returns an array anyway (even though IDs must be unique within a document).

$$('li.faux');
// -> all LI elements with class 'faux'

来源: http://www.prototypejs.org/api/utility/dollar-dollar

其他回答

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对象。

$字符对于JavaScript引擎没有特殊意义。它只是变量名中的另一个有效字符,如a-z, a-z, _, 0-9等…

${varname}只是jQuery开发人员用来区分包含jQuery元素的变量的命名约定。

Plain {varname}用于存储一般内容,如文本和字符串。 ${varname}保存从jQuery返回的元素。

你也可以使用plain {varname}来存储jQuery元素,但正如我在开始时所说的,这将它与普通变量区别开来,使其更容易理解(想象一下将其混淆为普通变量并搜索以了解它所包含的内容)。

例如:

var $blah = $(this).parents('.blahblah');

这里,blah存储返回的jQuery元素。

因此,当其他人在代码中看到$blah时,他们会明白这不仅仅是一个字符串或数字,而是一个jQuery元素。

$用于区分普通变量和jquery变量。 让你在FLIPKART下订单,然后如果订单是一个变量,显示你的字符串输出,然后它被命名为简单的“order”,但如果我们点击place order,然后返回一个对象,该对象将用$表示为“$order”,以便程序员可以在整个代码中剪掉javascript变量和jquery变量。

Angular将is用于框架生成的属性。我猜,他们是根据ECMA-262 3.0提供的提示(现在已经失效了)。