JavaScript中“$”符号是什么意思

IT技术 javascript
2021-01-19 13:00:54

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

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

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

$在 JavaScript 中使用 没有什么神秘的$只是一个有效的 JavaScript 标识符。

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

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

@Paolo:不确定你的意思。(我的以前是公认的,我想。)好吧,我认为至少我是完全正确的。这包括一些辅助信息,但我不确定它是否证明了“很多”......
2021-03-15 13:00:54
顺便说一句,我在这里的帖子中提供了 $ 函数背后的一些历史:stackoverflow.com/questions/1122690/jquery-and-questions/...
2021-03-15 13:00:54
@Noldorin:辅助信息是一件好事。您的问题完全没有提到使用 $ 的原因,可以使用它的原因,以及事实上 jQuery 只是使用它的众多库之一。将其作为可接受的答案意味着它是问题的最佳答案,但事实并非如此。
2021-03-17 13:00:54
+1 它首先是一个有效的 JavaScript 标识符,并且通常被 JavaScript 框架用作第二个别名。
2021-03-26 13:00:54
@Paolo:经常,是的。然而,没有迹象表明 OP 想知道这一点。直接回答也是一件好事。:) 话虽如此,我仍然同意这是一个更好的答案。我唯一的狡辩是你强调了一个特定的点。
2021-04-01 13:00:54

另一个答案

一点历史

请记住,$. 它是一个变量名称,就像任何其他名称一样。早些时候,人们习惯于使用 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 并缓慢迁移您的代码。我认为这对约翰来说是一个绝妙的举动!:)

我不知道,谢谢格兰特。我可以确认这曾经在 IE6 和 Firefox 2 中工作,因为我经常使用这种技术。我会更新我的主要帖子。
2021-03-12 13:00:54
其实应该是: function $(sel) { return document.querySelectorAll(sel); }
2021-03-12 13:00:54
var $ = document.getElementById;不适用于 Firefox 或 Google Chrome。你应该function $(id) { return document.getElementById(id); }改用。有关更多信息,请参阅stackoverflow.com/questions/1007340
2021-03-27 13:00:54

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

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

这段代码是什么意思: $input.prop('type') == 'radio';
2021-03-18 13:00:54
您应该添加 $ 就像 x,它可以是您分配给它的任何东西
2021-03-25 13:00:54

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

结果:

这些天有这么多新想法!

这是一个有用的答案!这是我一直在寻找的,因为我知道我们没有 jQuery 或任何其他库。它基本上是一种在不使用引号和加号等的情况下在较大的字符串中打印变量的方法。
2021-03-15 13:00:54

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