为什么 JQuery 到处都有美元符号?

Why does JQuery have dollar signs everywhere?

提问人:Sachin Kainth 提问时间:5/28/2012 更新时间:8/11/2020 访问量:94085

问:

我正在做一个项目,里面有相当多的JQuery。例如,JQuery 到处都有很多 $ 符号

$(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

评论

23赞 Lee 5/28/2012
是 jquery 对象的别名$
71赞 Rudu 5/28/2012
惊叹和困惑
4赞 smokestudley 5/28/2012
stackoverflow.com/questions/205853/......拥有您需要了解的一切
5赞 JJJ 5/28/2012
可能的重复 javascript 中“$”符号是什么意思
9赞 Adam 7/8/2013
var $ = jQuery

答:

13赞 Denys Séguret 5/28/2012 #1

它只是一个方便的字符,比“jQuery”更短,更易于阅读。

没有什么特别之处,只是传统上不用于启动变量或函数名称,这降低了风险或名称冲突。

评论

3赞 lilHar 4/27/2016
除非您使用 PHP 等其他语言使用 HTMLdocs 在您的站点中填充 javascript,否则此时美元符号具有破坏所有内容的额外目的,因为 PHP 确实使用美元符号来启动所有变量。(一个原因是,如果你要共享jQuery脚本以供广泛的网络使用,那么使用jQuery而不是$是很好的。
7赞 Kashif 5/28/2012 #2

谷歌是你的朋友:$ sign JQuery

美元符号只是 JQuery 的别名。

jQuery(document).ready(function(){});

$(document).ready(function(){});

评论

5赞 Max Nanasy 9/26/2014
仅供参考:google.com.pk/...似乎给出了相同的搜索结果,这意味着Google实际上不允许将$作为搜索词
13赞 thecodeparadox 5/28/2012 #3

$sign 是 的别名。的简短版本,一种较少写入的机制。jQueryjQuery

举个例子:(在jQuery中更复杂)

var yourFunction = function() {
    alert('a function');
}

window.Myf = yourFunction;

现在,您可以调用以下内容:yourFunction

Myf(); // definitely a short syntax
183赞 T.J. Crowder 5/28/2012 #4

$只是jQuery的快捷方式。这个想法是,一切都是用一个全局符号完成的(因为全局命名空间非常拥挤),但如果你愿意,你可以使用(因为它更短):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"

如果您不想使用别名,则不必使用。如果你不想成为 的别名,你可以使用 noConflict,库将恢复到 jQuery 接管它之前的任何状态。(如果您还使用 Prototype 或 MooTools,则很有用。$jQuery$

评论

0赞 Honsa Stunna 9/23/2022
但为什么是美元符号?
1赞 T.J. Crowder 9/23/2022
@HonsaStunna - 你得问问 John Resig,但可能是因为它很短,很容易打字(无论如何,在美式英语键盘上),而且很有特色。
4赞 Confusion 5/28/2012 #5

在 javascript 中,(单个美元字符)是有效的变量名。包括 jQuery 在内的几个框架已将其用作对象的同义词,该对象包含该框架提供的顶级便利方法。$

2赞 Lijo 6/25/2015 #6

$ 符号用作 Jquery 的别名。 而不是使用 jquery.hide,jquery.show 我们可以使用别名 $ ($.hide) 因为我们经常使用这个词。“Jquery”不是一种方便的方法,因此我们使用别名 $。 如果我们想改变它,我们可以通过 noConflict 方法改变它 var Sample=$.noConflict()

11赞 Ahmet Can Güven 2/24/2016 #7

可写性和性能


当我们在研究库或编程语言时,我们应该注意一些可写性规则。多亏了jQuery,他们已经实现了很多选项。你可以使用,或者你可以使用,或者你可以使用$jQuery_

(function (_) {
    _("#wow").click()
})(jQuery);

或者,也许您可以进行花哨的更改,javascript 标识符是 unicode,因此您可以使用Ω

(function (Ω) {
    Ω("#wow").click()
})(jQuery);

但其背后的主要思想是,按一次键盘比打字要好jQuery


另一方面,我们有性能......我只是随机打开我的一个项目并搜索,我在单个 javascript 文件中使用了 54。$$

$是一个字节。

jQuery是 6 个字节。

差异是巨大的 54 * 5 = 220 字节。

评论

1赞 Ahmet Can Güven 8/9/2016
如果你投了反对票,请不要自私地告诉我我做错了什么。这样我就可以纠正我的错误(如果有的话)!
2赞 Garrett Smith 1/2/2018
就速度而言,220 字节不会真正产生任何显着差异。此外,它不会只占用 220 个字节,因为代码必须经过 V8 JS 引擎(或其他引擎),而且我们不知道它为不同的东西分配了多少。
1赞 Ahmet Can Güven 1/2/2018
@GarrettSmith我说的是网络成本。$ 或 jQuery 的执行几乎相同。
1赞 Preza8 11/20/2020
如果 peoply 试图少写一些东西并普遍应用该规则,那么这就是你获得不可读代码的方式。但我想 javascript 开发人员认为不可读的代码是一种好处,因为它提供了工作保障。