$
)。它代表什么意思?$(window).bind('load', function() {
$('img.protect').protectImage();
});
$
)。它代表什么意思?$(window).bind('load', function() {
$('img.protect').protectImage();
});
你的代码片段似乎引用了一些流行的JavaScript库中的方法(如jQuery、ProtoType、mooTools等)。
在JavaScript中使用$
并没有什么神秘的地方,它只是一个有效的JavaScript标识符。JavaScript允许大写和小写字母(不仅限于英文),数字(但不能作为第一个字符),$
,_
以及其他一些字符¹。
Prototype、jQuery和大多数JavaScript库使用$
作为主要基对象(或函数)。它们中的大多数也有一种方法可以放弃$
,以便它可以与使用它的另一个库一起使用。在这种情况下,您可以使用jQuery
代替$
。实际上,$
只是jQuery
的一个快捷方式。
¹ 对于标识符的第一个字符,JavaScript允许使用"...任何具有Unicode属性“ID_Start”的Unicode代码点...以及$
和_
; 详细信息请参见规范。对于标识符中的后续字符,它允许任何具有ID_Continue
(包括_
)和$
(以及一些用于历史兼容性的控制字符)的字符。
true
或false
。 - Ravi Dhoriya ツ来自另一个答案:
一点历史
请记住,$
与其他变量名并没有本质上的不同。早期的时候,人们使用document.getElementById
编写代码。由于JavaScript是大小写敏感的,在编写document.getElementById
时很容易犯错。我应该大写'by'
的b吗?我应该大写Id
的i吗?你明白了。因为函数在JavaScript中是一等公民,所以你总是可以这样做:
var $ = document.getElementById; //freedom from document.getElementById!
当Prototype库出现时,他们将获取DOM元素的函数命名为'$'
。几乎所有的JavaScript库都复制了这个想法。Prototype还引入了一个$$
函数,以使用CSS选择器选择元素。$
函数,但扩展了它,使其接受各种“选择器”以获取所需的元素。现在,如果您已经在项目中使用Prototype并想要包含jQuery,则会出现问题,因为'$'
可能指的是Prototype的实现或jQuery的实现。这就是为什么jQuery有noConflict选项的原因,这样您可以在使用Prototype的项目中包含jQuery,并逐渐迁移代码。我认为这是约翰(John)做出的精彩举措! :)var $ = document.getElementById;
无法正常使用。相反,您应该使用function $(id) { return document.getElementById(id); }
。有关更多信息,请参见https://dev59.com/h3NA5IYBdhLWcg3wVcJx。 - Grant Wagnerfunction $(sel) { return document.querySelectorAll(sel); }
。 - Nanoo正如其他答案所述,它可能是几乎任何东西,但通常是 "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()
。<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));
基本语法是:$(选择器).操作()
美元符号用于定义jQuery,A(选择器)用于“查询(或查找)”HTML元素,jQuery操作()用于对元素执行操作。