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


110

我正在开发一个包含很多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时的可怕日子,不得不在不知为何的情况下无所不用其极。


19
$是jQuery对象的别名

55
令人

2
stackoverflow.com/questions/205853/… 具有您需要了解的所有信息
smokestudley,2012年


7
var $ = jQuery
亚当(

Answers:


165

$只是的捷径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"

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


12

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

除了在传统上不使用它来启动变量或函数名称之外,没有什么特别的,它可以减少风险或名称冲突。


1
除非您使用其他语言(例如PHP)使用HTMLdocs在您的网站中填充javascript,否则,美元符号具有打破一切的附加目的,因为PHP 确实使用美元符号来启动所有变量。(如果您要共享jQuery脚本以供广泛使用,则可以使用jQuery而不是$)。
liljoshu

12

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

仅作为示例:(在jQuery中,它更复杂)

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

window.Myf = yourFunction;

现在您可以yourFunction像这样致电:

Myf(); // definitely a short syntax

10

可写性和性能


在使用库或编程语言时,我们应注意一些可写性规则。由于有了jQuery,他们已经实现了很多选项。您可以使用$或者您可以使用jQuery或者您可以使用_

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

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

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

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


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

$ 是一个字节。

jQuery 是6个字节。

区别是巨大的54 * 5 = 220字节。


如果您投反对票,请不要自私地告诉我我做错了什么。这样我就可以纠正我的错误!
Ahmet CanGüven'16

就速度而言,220字节并不会真正产生任何显着差异。此外,由于代码必须通过V8 JS引擎(或其他引擎),而且它不分配220多字节,因此我们不知道它为不同的事物分配了多少。
加勒特·史密斯

@GarrettSmith我在谈论网络成本。$或jQuery的执行几乎相同。
Ahmet CanGüven18年

6

Google是您的朋友: $ sign JQuery

美元符号只是JQuery的别名。

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

要么

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

4
仅供参考:google.com.pk/…似乎提供了相同的搜索结果,这意味着Google实际上不允许使用美元作为搜索词
Max Nanasy 2014年

5

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


1

$符号用作Jquery的别名。而不是使用jquery.hide,在所有可以使用别名$($ .hide)的地方都使用jquery.show,因为我们经常使用这个词。“ jQuery”将不是一种方便的方法,因此我们使用别名$。如果要更改它,可以通过noConflict方法进行更改var Sample = $。noConflict()

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.