我经常看到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

其他回答

正如我在过去4年的经验,它将允许一些人很容易地识别变量是否指向值/对象或jQuery包装的DOM元素

前任: var name = 'jQuery'; var lib = {name:'jQuery',version:1.6}; var $dataDiv = $('#myDataDiv');

在上面的例子中,当我看到变量“$dataDiv”,我可以很容易地说,这个变量指向一个jQuery包装DOM元素(在这种情况下,它是div)。我也可以调用所有的jQuery方法,而不是包装对象再次像$dataDiv.append(), $dataDiv.html(), $dataDiv.find()而不是$($dataDiv).append()。

希望能有所帮助。 所以最后想说的是,这将是一个很好的实践,但不是强制性的。

有效的JavaScript标识符必须以字母开头, 下划线(_)或美元符号($); 后续字符也可以 是数字(0-9)。因为JavaScript是区分大小写的, 信 包括字母“A”到“Z”(大写)和 字母a到z(小写)。

细节: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Variables

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

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

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