在以下JavaScript代碼中有一個美元符號$
。這是什麼意思?
$(window).bind('load', function() {
$('img.protect').protectImage();
});
在以下JavaScript代碼中有一個美元符號$
。這是什麼意思?
$(window).bind('load', function() {
$('img.protect').protectImage();
});
您的代碼片段看起來像是從流行的JavaScript庫(jQuery,ProtoType,mooTools等)中引用方法。
在JavaScript中使用$
沒有什麼神祕的。 $
只是一個有效的JavaScript標識符。
JavaScript允許使用大寫和小寫字母,數字和$
和_
。 $
旨在用於機器生成的變量(如$0001
)。
原型,jQuery和大多數JavaScript庫使用$
作爲主要基礎對象(或函數)。他們中的大多數人也有辦法放棄$
,以便它可以與使用它的其他庫一起使用。在這種情況下,您使用jQuery
而不是$
。實際上,$
只是jQuery
的快捷方式。
這比接受的答案好得多。 +1 – 2009-07-19 17:49:49
這很可能是jQuery代碼(更準確地說,使用jQuery庫的JavaScript)。
$
代表jQuery Function,實際上是jQuery
的簡寫別名。 (與大多數語言不同,$
符號未被保留,並且可以用作變量名稱)。它通常用作選擇器(即返回在DOM中找到的一組元素的函數)。
它的原型 – 2009-07-19 17:30:55
您應該添加$就像x,它可以是您分配的任何東西 – hasen 2009-07-19 17:36:49
這段代碼是什麼意思:$ input.prop('type')=='radio'; – OKGimmeMoney 2014-08-15 18:21:09
$()
是用於jQuery Library的jQuery()
的簡寫版本。
一個小歷史
記住,沒有什麼本質上的特別之處 '$'。這是一個變量名稱,就像任何其他名稱一樣。在早些時候,人們習慣使用document.getElementById編寫代碼。由於JavaScript區分大小寫,因此在編寫document.getElementById時出錯是正常的。我應該資本''的'B'嗎?我是否應該註冊Id的「我」?你得到了漂移。由於功能是在JavaScript中的一等公民,你總是可以做到這一點
var $ = document.getElementById; //freedom from document.getElementById!
[編輯:看起來在Firefox 3和谷歌Chrome,you can't make alias so easily。在IE6和Firefox2,上述技術仍然有效。]
當Prototype庫到達時,他們命名了他們的功能,它得到的DOM元素,如「$」,以節省打字/可讀性[當寫JS代碼,大部分你首先選擇一些DOM元素]。幾乎所有的JavaScript庫都複製了這個想法。 Prototype還引入了$$函數來選擇使用CSS選擇器的元素。
jQuery不僅調整了'$ function',而且擴展了它以接受所有'選擇器'來獲得你想要的元素。現在,如果你已經在你的項目中使用了Prototype並且想要包含jQuery,那麼你會遇到問題,因爲'$'可能指向Prototype的實現或者jQuery的實現。這就是爲什麼jQuery有noConflict選項的原因,以便您可以在使用Prototype的項目中包含jQuery,並慢慢遷移您的代碼。我認爲這對約翰來說是一個很棒的舉動! :)
從jQuery的文檔描述jQuery Core Object:
許多開發商在它前面加上$來的包含爲了幫助區分jQuery的 對象的變量名。這種做法沒有什麼神奇之處 - 它只是幫助一些人跟蹤變量所包含的不同之處。
正如所有其他答案所說;它幾乎可以是任何東西,但通常是「JQuery」。
但是,在ES6中,它是一個字符串插值運算符,例如template "literal"。
var s = "new" ; // you can put whatever you think appropriate here.
var s2 = `There are so many ${s} ideas these days !!` ; //back-ticks not quotes
console.log(s2) ;
結果:
有很多新的想法,這些天!
除了上面的回答,$
在javascript中沒有特別的含義,它可以自由地用於對象命名。在jQuery中,它被簡單地用作jQuery對象和jQuery()函數的別名。 但是,您可能會遇到需要將其與另一個使用$的JS庫結合使用的情況,這會導致命名衝突。因爲這個原因,JQuery中有一個方法,jQuery.noConflict()
。
這裏是的jQuery文檔的一個樣本:
<script src="other_lib.js"></script>
<script src="jquery.js"></script>
<script>
$.noConflict();
// Code that uses other library's $ can follow here.
</script>
另外,您也可以使用這樣
(function ($) {
// Code in which we know exactly what the meaning of $ is
} (jQuery));
參見:HTTP:// stackoverflow.com/a/553734/43615(爲什麼JavaScript變量會以美元符號開頭?) – 2016-02-01 16:35:53