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

时间:2012-05-28 15:53:36

标签: jquery

我正在开发一个包含大量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的可怕日子,不得不把括号放在任何地方而不知道我为什么要这样做。

7 个答案:

答案 0 :(得分:152)

$只是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,则非常有用。)

答案 1 :(得分:12)

这只是一个方便的角色,比“jQuery”更短,更容易阅读。

没有什么特别的,除了传统上它不用于启动变量或函数名称,这可以降低风险或名称冲突。

答案 2 :(得分:10)

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

仅举例:(在jQuery中它更复杂)

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

window.Myf = yourFunction;

现在您可以致电yourFunction,如:

Myf(); // definitely a short syntax

答案 3 :(得分:9)

可写性和性能

当我们处理库或编程语言时,我们应该注意一些可写性规则。感谢jQuery,他们已经实现了很多选项。您可以使用$,也可以使用jQuery,也可以使用_

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

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

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

但其背后的主要思想是,键入一次键盘比键入jQuery

更好

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

$是一个字节。

jQuery是6个字节。

差异很大54 * 5 = 220字节。

答案 4 :(得分:5)

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

答案 5 :(得分:4)

Google是你的朋友: $ sign JQuery

Dollar Sign只是JQuery的别名。

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

OR

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

答案 6 :(得分:1)

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