Answers:
您的代码段看起来像是来自一种流行的JavaScript库(jQuery,ProtoType,mooTools等)的引用方法。
$
在JavaScript中使用它并没有什么神秘之处。$
只是一个有效的JavaScript标识符。
JavaScript允许使用大写和小写字母,数字$
和_
。在$
旨在用于机器生成的变量(如$0001
)。
原型,jQuery和大多数javascript库都将$
用作主要基础对象(或函数)。他们中的大多数人也有放弃$
它的方法,以便可以与使用它的另一个库一起使用。在这种情况下,您可以使用jQuery
代替$
。实际上,$
这只是的快捷方式jQuery
。
从另一个答案:
一点历史
请记住,并没有什么本质上的特殊之处$
。就像其他变量一样,它是一个变量名。在早期,人们曾经使用document.getElementById编写代码。由于JavaScript区分大小写,因此在编写时犯错误是正常的document.getElementById
。我应该资本'b'
的'by'
?我应该资本'i'
的Id?
你得到的漂移。由于函数是JavaScript中的一等公民,因此您始终可以执行以下操作:
var $ = document.getElementById; //freedom from document.getElementById!
当原型库到达时,他们将其命名为函数,该函数获取DOM元素,如'$'
。几乎所有的JavaScript库都复制了这个想法。原型还引入了$$
使用CSS选择器选择元素的功能。
jQuery还改编了$
功能,但对其进行了扩展,使其可以接受各种“选择器”来获取所需的元素。现在,如果您已经在项目中使用Prototype并希望包含jQuery,则可能会遇到麻烦,因为'$'
它们可能引用Prototype的实现或jQuery的实现。这就是为什么jQuery具有noConflict选项的原因,因此您可以在使用Prototype的项目中包含jQuery并缓慢迁移代码。我认为这对约翰而言是一个绝妙的举动!:)
var $ = document.getElementById;
在Firefox或Google Chrome中不起作用。您应该function $(id) { return document.getElementById(id); }
改用。有关更多信息,请参见stackoverflow.com/questions/1007340。
正如所有其他答案所说的那样;它几乎可以是任何东西,但通常是“ JQuery”。
但是,在ES6中,它是模板“文字”(例如)中的字符串插值运算符。
var s = "new" ; // you can put whatever you think appropriate here.
var s2 = `There are so many ${s} ideas these days !!` ; //back-ticks not quotes
console.log(s2) ;
结果:
这些天有很多新想法!
除了以上答案外,$
在javascript中没有特殊含义,可以在对象命名中自由使用。在jQuery中,它只是用作jQuery对象和jQuery()函数的别名。但是,您可能会遇到要与另一个也使用$的JS库结合使用的情况,这将导致命名冲突。正是出于这个原因,JQuery中有一个方法jQuery.noConflict()
。
这是jQuery文档的示例:
<script src="other_lib.js"></script>
<script src="jquery.js"></script>
<script>
$.noConflict();
// Code that uses other library's $ can follow here.
</script>
或者,您也可以使用这样的
(function ($) {
// Code in which we know exactly what the meaning of $ is
} (jQuery));
从描述jQuery Core Object的jQuery文档中:
许多开发人员在包含jQuery对象的变量名称前添加$,以帮助区分。这种做法没有什么神奇之处–它只是帮助某些人跟踪不同变量包含的内容。