在以下JavaScript代码中,有一个美元($
)符号。这是什么意思?
$(window).bind('load', function() {
$('img.protect').protectImage();
});
答案 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)
一点历史
请记住,'$'没有任何固有的特殊之处。它是一个变量名称,就像其他任何名称一样。在早些时候,人们习惯使用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));
答案 6 :(得分:2)
来自描述jQuery Core Object的jQuery文档:
许多开发人员在$前面添加了包含jQuery的变量名称 对象以帮助区分。没有什么神奇之处 这种做法 - 它只是帮助一些人跟踪不同的东西 变量包含。
答案 7 :(得分:-2)
基本语法是:$(selector).action()
用于定义 jQuery A(选择器)以“查询(或查找)”HTML 元素的美元符号要在元素上执行的 jQuery action()