【问题标题】:Why does JQuery have dollar signs everywhere?为什么 JQuery 到处都有美元符号?
【发布时间】:2012-05-28 15:53:36
【问题描述】:

我正在开发一个包含大量 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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      现在您可以拨打yourFunction 喜欢:

      Myf(); // definitely a short syntax
      

      【讨论】:

        【解决方案4】:

        可写性和性能


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

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

        或者你可以做一些花哨的改变,javascript标识符是unicode所以你可以使用Ω

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

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


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

        $ 是一个字节。

        jQuery 是 6 个字节。

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

        【讨论】:

        • 如果你投了反对票,请不要自私地告诉我我做错了什么。这样我可以纠正我的错误,如果有的话!
        • 220 字节就速度而言并不会真正产生任何显着差异。此外,它不会只占用 220 字节,因为代码必须通过 V8 JS 引擎(或其他引擎),我们不知道它为不同的东西分配了多少。
        • @GarrettSmith 我说的是网络成本。 $ 或 jQuery 的执行几乎相同。
        • 如果人们试图少写一些东西并普遍应用该规则,这就是你得到不可读代码的方式。但我想 javascript 开发人员认为不可读的代码是一种好处,因为它提供了工作保障。
        【解决方案5】:

        Google 是您的朋友: $ sign JQuery

        美元符号只是 JQuery 的别名。

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

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

        【讨论】:

        • 仅供参考:google.com.pk/… 似乎给出了相同的搜索结果,这意味着 Google 实际上不允许将 $ 作为搜索词
        【解决方案6】:

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

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

        【讨论】:

        • 除非您使用 PHP 之类的另一种语言来使用 HTMLdocs 在您的站点中填充 javascript,此时美元符号的附加目的是破坏一切,因为 PHP 确实 使用美元符号开始所有变量。 (如果您共享 jQuery 脚本以供广泛的网络使用,使用 jQuery 而不是 $ 是一种原因)。
        【解决方案7】:

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

        【讨论】:

          猜你喜欢
          • 2010-12-14
          • 2014-04-15
          • 2021-05-10
          • 1970-01-01
          • 2013-12-01
          • 1970-01-01
          • 2011-09-07
          • 2011-11-26
          • 2014-04-10
          相关资源
          最近更新 更多