JavaScript中“$”的含义是什么?

在下面的JavaScript代码中有一个美元符号$ 。 这是什么意思?

 $(window).bind('load', function() { $('img.protect').protectImage(); }); 

您的代码片段看起来像是从一个流行的JavaScript库(jQuery,ProtoType,mooTools等)引用方法。

在JavaScript中使用$没有任何神秘的地方。 $是一个有效的JavaScript标识符。

JavaScript允许使用大写和小写字母,数字和$_$打算用于机器生成的变量(如$0001 )。

原型,jQuery和大多数JavaScript库使用$作为主要的基础对象(或功能)。 他们中的大多数人也有一种方法来放弃$以便它可以用于另一个使用它的库。 在这种情况下,你使用jQuery而不是$ 。 实际上, $只是jQuery一个捷径。

这是最有可能的jQuery代码(更确切地说,使用jQuery库的JavaScript)。

$表示jQuery函数 ,实际上是jQuery的简写别名。 (与大多数语言不同, $符号不是保留的,可以用作变量名称)。它通常用作选择器 (即返回在DOM中找到的一组元素的函数)。

从另一个答案 :

有一点历史

请记住,“$”并没有什么特别的地方。 这是一个变量名称就像任何其他。 在早些时候,人们习惯使用document.getElementById编写代码。 由于JavaScript区分大小写,因此在编写document.getElementById时出错是正常的。 我应该资本''的'B'? 我是否应该注册Id的“我”? 你得到漂移。 因为函数是JavaScript中的第一类公民,所以你可以一直这样做

 var $ = document.getElementById; //freedom from document.getElementById! 

[ 编辑:看起来像在Firefox 3和谷歌浏览器, 你不能这么容易制作别名 。 在IE6和Firefox2中,上述技术仍然有效。]

当Prototype库到达时,他们将获取DOM元素的函数命名为'$',以保存输入/可读性[在编写JS代码时,大部分时间是从选择一些DOM元素开始的]。 几乎所有的JavaScript库都复制这个想法。 Prototype还引入了$$函数来选择使用CSS选择器的元素。

jQuery不仅适应了'$ function',而且扩展了它以接受各种'选择器'来获得你想要的元素。 现在,如果你已经在你的项目中使用了Prototype并且想要包含jQuery,那么你将会遇到问题,因为'$'可以指Prototype的实现或者jQuery的实现。 这就是为什么jQuery有noConflict选项,以便您可以在您的项目中使用Prototype包括jQuery,并慢慢迁移您的代码。 我认为这对约翰来说是一个很棒的举动! 🙂

$()是jQuery库中使用的jQuery()的简写版本。

从描述jQuery核心对象的jQuery文档:

许多开发人员在$前面添加了一个包含jQuery对象的变量名称,以便于区分。 这种做法没有任何魔力 – 它只是帮助一些人跟踪不同的变量包含什么。

正如所有其他答案所说的那样; 它几乎可以是任何东西,但通常是“JQuery”。

但是,在ES6中,它是一个字符串插值运算符,例如“literal”模板 。

 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)); 

参考 : https : //api.jquery.com/jquery.noconflict/