阅读javascript脚本,为什么这么多$(美元符号)?

bit*_*bot 25 javascript

我试图破译.js脚本,我发现它充满了整个$?有没有理由使用它?我是JavaScript的新手.

Spo*_*oks 42

我想你正在阅读一个名为jQuery(或可能是另一个库)的JavaScript库.的$仅仅是一个命名空间或使用作为标识符的简写形式.

你可以这样认为jQuery('p')选择页面上的所有段落,或者你可以写的简短形式$('p').

这是jQuery tutorials/docs jQuery的链接

这是标准清单第7.6节详细描述了ECMA标准

  • 如果`$`用于jQuery,`"你正在读一个jQuery文件(或另一个库)"`严格地说是不准确的.它是一个包含使用该库的代码的JavaScript文件.这是开始时想到它的一种更简单的方法. (3认同)
  • 他们有一个jquery.min.js所以我猜它是jquery的简短形式.感谢大家! (2认同)

T.J*_*der 40

许多图书馆都将其$作为主要标志.它与JavaScript本身无关,但它是一个简短的独特符号,因此库往往会浮现在它上面.(您可以$在JavaScript中启动标识符,标识符可以是一个字符长,因此$是有效的标识符,就像ax.)

我知道至少有三个$用于某些东西的库:

  • jQuery - 它是jQuery的全功能函数,jQuery是jQuery函数的别名; 更多在这里.
  • 原型 - 这是Prototype的替代品document.getElementById,更多在这里.Prototype也有$$,用于通过CSS选择器查找.
  • MooTools - 与Prototype相同(因为MooTools要么"受到启发"或"从原型分叉",几年前,取决于你问的对象),更多这里.和原型一样,它有$$.

  • 比Spooks的答案更具描述性,彻底性和正确性 (6认同)
  • 我选择了幽灵的答案,因为它解释了$只是命名空间的简短形式,真正解决了我的答案,就像用锤子击中头部.因为我来自一个使用命名空间的C#背景 (2认同)

kem*_*002 10

$是一个变量.许多框架使用它作为使用它的简写.Prototype和Jquery是两个大的.这并不意味着$自动就是其中之一.它可以是任何东西,因为JavaScript中的任何东西都可以为$赋值.这是需要注意的事项,因为当您开始组合来自不同来源的脚本时,人们很容易意外地将变量重新分配给其他内容.

最有可能的是它是一个框架引用,但您必须阅读代码才能确定.在某个时间点,$用于表示它引用的代码是自动生成的,但这只是一个指导原则.


Ash*_*kes 10

如果你是javascript的新手,$() 可能看起来很奇怪.

试着想一想

var $ = function(){
    //do something
} 
Run Code Online (Sandbox Code Playgroud)

所以美元符号就像任何其他变量一样是变量的名称.

var myFunction = function(){
    //do something
}
// this is exactly the same just a different name. 
Run Code Online (Sandbox Code Playgroud)

所以美元符号在javascript中没有特殊含义.

框架喜欢使用它,因为你经常使用它们的功能,例如jQuery()每次都必须写,这将是乏味的.拥有一个角色很好而且很短.

我认为他们也喜欢这个$符号,纯粹是因为它很不寻常,所以很快就可以与其他代码区别开来.

console.log(jQuery)如果控制台返回一串代码$()是jQuery ,那么快速找出它是否是jQuery的方法就是这样做.如果你得到了undefined,那就是别的了.