繁体   English   中英

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

[英]What is the meaning of "$" sign in JavaScript

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

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

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

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

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

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

另一个答案

一点历史

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

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

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

jQuery 还调整$函数,但扩展为使其接受各种“选择器”来获取您想要的元素。 现在,如果您已经在项目中使用 Prototype 并且想要包含 jQuery,那么您将遇到问题,因为'$'可以引用 Prototype 的实现或 jQuery 的实现。 这就是为什么 jQuery 有 noConflict 选项,以便您可以在使用 Prototype 的项目中包含 jQuery 并慢慢迁移您的代码。 我认为这对约翰来说是一个绝妙的举动! :)

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

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

正如所有其他答案所说; 它几乎可以是任何东西,但通常是“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 库中使用的jQuery()的简写版本。

除了上面的答案, $在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/

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

许多开发人员在包含 jQuery 对象的变量名称前加上 $ 前缀,以帮助区分。 这种做法没有什么神奇之处——它只是帮助一些人跟踪不同变量包含的内容。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM