为什么JQuery到处都有美元符号?
我正在做一个有很多JQuery的项目。例如,JQuery到处都有许多$符号为什么JQuery到处都有美元符号?,jquery,Jquery,我正在做一个有很多JQuery的项目。例如,JQuery到处都有许多$符号 $(document).ready(function () { $('input[type=file]').wl_File({ url: '/Admin/PolicyInventory/UploadDocuments', onFileError: function (error, fileobj) { $.msg('file
$(document).ready(function () {
$('input[type=file]').wl_File({
url: '/Admin/PolicyInventory/UploadDocuments',
onFileError: function (error, fileobj) {
$.msg('file is not allowed: ' + fileobj.name, {
header: error.msg + ' Error ',
live: 10000
});
}
});
...
我的问题是,这个美元符号是什么意思?为什么到处都在使用它?我如何理解和解释它?它让我想起了我在大学里学习Scheme时的可怕日子,我不得不在不知道为什么要这么做的情况下到处放括号。它只是一个方便的字符,比“jQuery”更短,更容易阅读 没有什么特别的,除了它传统上不用于启动变量或函数名,这可以减少风险或名称冲突。谷歌是你的朋友: 美元符号只是JQuery的别名
jQuery(document).ready(function(){});
或
$
符号是jQuery
的别名。jQuery
的一个简短版本,一种更少的写入机制
举个例子:(在jQuery中更复杂)
现在,您可以调用您的函数
如下:
Myf(); // definitely a short syntax
$
只是一个快捷方式。其思想是,所有的都是用一个全局符号来完成的(因为全局名称空间非常拥挤),jQuery
,但是如果您愿意,您可以使用$
(因为它比较短):
// These are the same barring your using noConflict (more below)
var divs = $("div"); // Find all divs
var divs = jQuery("div"); // Also find all divs, because
console.log($ === jQuery); // "true"
如果不想使用别名,则不必这样做。如果您不希望
$
成为jQuery
的别名,您可以使用,并且库将$
恢复到jQuery接管之前的状态。(如果您还使用Prototype或MooTools,则很有用。)在javascript中,$
(一个美元字符)是有效的变量名。一些框架(包括jQuery)将其作为对象的同义词,该对象包含框架提供的顶级便利方法。$sign用作jQuery的别名。
jquery.show不是使用jquery.hide,而是显示每个可以使用别名$($.hide)的位置
因为我们已经多次使用这个词了。”Jquery’将不是一种方便的方式,因此我们使用别名$。
如果我们想改变它,我们可以用无冲突的方法来改变它
var Sample=$.noConflict()可写性和性能
当我们研究库或编程语言时,我们应该注意一些可写性规则。多亏了jQuery,他们已经实现了很多选项。您可以使用
$
或jQuery
或
(function (_) {
_("#wow").click()
})(jQuery);
或者你可以做一些奇特的改变,javascript标识符是unicode的,所以你可以使用Ω
(function (Ω) {
Ω("#wow").click()
})(jQuery);
但它背后的主要思想是,按一次键盘比键入jQuery
另一方面,我们有表现。。。我只是随机打开一个项目,搜索
$
,在一个javascript文件中使用了54个$
$
是一个字节
jQuery
是6个字节
差异是巨大的54*5=220字节。这个
$
是jquery对象的别名,wow和Mizz有你需要知道的一切关于它的可能重复的var$=jquery
FYI:似乎给出了相同的搜索结果,这意味着谷歌实际上不允许美元作为搜索词,除非你使用另一种语言,比如PHP,使用HTMLdocs在你的站点中填充javascript,在这一点上,美元符号的另一个作用是打破一切,因为PHP使用美元符号启动所有变量。(这是一个原因,如果你共享jQuery脚本以供broad net使用,那么使用jQuery而不是$)如果你投了反对票,请不要自私地告诉我我做错了什么。这样,如果有错误,我就可以改正!就速度而言,220字节实际上不会产生任何显著的差异。而且,它不会只占用220字节,因为代码必须经过V8 JS引擎(或其他引擎),我们不知道它为不同的东西分配了多少。@GarrettSmith我刚才说的是网络成本。$或jQuery的执行几乎是一样的。如果人们试图少写一些东西,并普遍应用该规则,那么就会得到不可读的代码。但我认为JavaScript开发人员认为不可读代码是一种好处,因为它提供了作业安全性。
(function (_) {
_("#wow").click()
})(jQuery);
(function (Ω) {
Ω("#wow").click()
})(jQuery);