“;$"”是什么意思?JavaScript签到

在下面的JavaScript代码中,有一个dollar ($)符号。这是什么意思?

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

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

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

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

您的代码片段看起来像是引用了某个流行JavaScript库(jQuery、ProtoType、mooTools等)中的方法。

在JavaScript中使用$并不神秘。$只是一个有效的JavaScript标识符。JavaScript允许大写字母和小写字母(在各种脚本中,不仅仅是英语),数字(但不是在第一个字符),$_,以及其他

Prototype、jQuery和大多数javascript库都使用$作为主要的基对象(或函数)。它们中的大多数也有一种方法来放弃$,以便它可以与使用它的另一个库一起使用。在这种情况下,使用jQuery而不是$。事实上,$只是jQuery的一个快捷方式。


¹对于标识符的第一个字符,JavaScript允许“…带有Unicode属性" ID_Start "…"的任何Unicode码点;加上$_;该规范中的详细信息。对于标识符中的后续字符,它允许包含ID_Continue(包括_)和$(以及两个控制字符以保持历史兼容性)的任何字符。

另一个答案:

一点历史

记住,$本身并没有什么特别之处。它是一个变量名,就像其他变量名一样。在早期,人们习惯使用document.getElementById编写代码。因为JavaScript是区分大小写的,所以在编写document.getElementById时犯错误是正常的。我应该大写'b' ('by')吗?我应该大写'i'还是Id?你懂的。因为函数是JavaScript中的一等公民,你总是可以这样做:

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

当Prototype库到来时,他们将获取DOM元素的函数命名为'$'。几乎所有的JavaScript库都复制了这个想法。Prototype还引入了$$函数来使用CSS选择器选择元素。

jQuery还改编了$函数,但扩展到让它接受各种“选择器”来获取你想要的元素。现在,如果你已经在你的项目中使用Prototype,并且想要包含jQuery,你将会遇到问题,因为'$'既可以是Prototype的实现,也可以是jQuery的实现。这就是为什么jQuery有noConflict选项,这样你就可以在使用Prototype的项目中包含jQuery,并慢慢迁移你的代码。我认为这是约翰的明智之举!:)

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

许多开发人员在包含jQuery的变量名前加上$ 来帮助区分。这没什么神奇的 这种做法,只是帮助一些人记录不同之处 变量包含。< / p >

正如所有其他答案所说;它可以是任何东西,但通常是“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));

裁判: https://api.jquery.com/jquery.noconflict/

基本语法是:$(selector).action()

$符号定义jQuery A(选择器)为“查询(或查找)”;对元素执行的jQuery动作()