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

时间:2009-07-19 17:28:37

标签: javascript

在以下JavaScript代码中,有一个美元($)符号。这是什么意思?

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

8 个答案:

答案 0 :(得分:268)

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

在JavaScript中使用$并不神秘。 $只是一个有效的JavaScript标识符。

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

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

答案 1 :(得分:40)

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

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

答案 2 :(得分:37)

来自another answer

一点历史

请记住,'$'没有任何固有的特殊之处。它是一个变量名称,就像其他任何名称一样。在早些时候,人们习惯使用document.getElementById编写代码。因为JavaScript区分大小写,所以在编写document.getElementById时出错是正常的。我应该资本'b'的'by'吗?我应该资助我的Id吗?你得到漂移。因为函数是JavaScript中的一等公民,所以你总是可以这样做

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

[编辑:在Firefox 3和Google Chrome中看起来像you can't make alias so easily。在IE6和Firefox2中,上述技术仍然有效。]

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

jQuery不仅调整了'$ function',还扩展了它以接受所有类型的'选择器'来获得你想要的元素。现在,如果您已经在项目中使用Prototype并想要包含jQuery,那么您将遇到问题,因为'$'可以引用Prototype的实现或jQuery的实现。这就是为什么jQuery可以选择noConflict,这样你就可以在你的项目中包含jQuery,它使用Prototype并慢慢迁移你的代码。我认为这对John来说是一次精彩的举动! :)

答案 3 :(得分:17)

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

答案 4 :(得分:10)

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

然而,在ES6中,它是template "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) ;

结果:

  

这些天有很多新想法!!

答案 5 :(得分:3)

除上述答案外,$在javascript中没有特殊含义,可以在对象命名中自由使用。在 jQuery 中,它仅用作 jQuery 对象和 jQuery()函数的别名。 但是,您可能会遇到要与另一个也使用$的JS库一起使用它的情况,这会导致命名冲突。由于这个原因,JQuery中有一个方法,jQuery.noConflict()

以下是 jQuery doc的一个示例:

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

Refhttps://api.jquery.com/jquery.noconflict/

答案 6 :(得分:2)

来自描述jQuery Core Object的jQuery文档:

  

许多开发人员在$前面添加了包含jQuery的变量名称       对象以帮助区分。没有什么神奇之处       这种做法 - 它只是帮助一些人跟踪不同的东西       变量包含。

答案 7 :(得分:-2)

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

用于定义 jQuery A(选择器)以“查询(或查找)”HTML 元素的美元符号要在元素上执行的 jQuery action()