就像你可以有一個名爲a的變量一樣,你可以有一個名爲$或_的變量。在JavaScript的變量名稱搜索谷歌將提供更多的信息,但你的問題的角度,考慮一下:
var a = 1; //creates a variable named a, value is one
var $ = 1; //creates a variable named $, value is one
,因爲它是JavaScript的,一個變量也可以按住一個功能:
var a = function(){return 1;} // calling a() will return one
var $ = function(){return 1;} // $ is a var whose value is a function.
現在,當你有你打電話非常頻繁,forexample jQuery庫有一個名爲JQuery的(),它包裝元素,幷包含一切功能的功能,是有意義的有它的快捷方式:
function JQuery(){...} //everything that JQuery does
var $ = JQuery; //now $() is the shorthand for JQuery()
再次,因爲它是JavaScript中,函數可以返回一個值,或者另一個功能:
var cheerio = {
load: function(start){
return function(end){ return start + " " + end }
}
}
var $ = cheerio.load("hello");
$("world"); // will return "hello world"
$("my friend"); //will return "hello my friend"
在你的示例代碼,$已被用作cheerio.load的療法返回值的簡寫()函數。所以,$('#topic_list .topic_title')
相當於
cheerio.load(res.text)('#topic_list .topic_title')
意味着cheerio.load(res.text)
有望返回以後可以調用的函數。所以從你的示例代碼的第二行開始,$就是這個函數。如果您之前有過JQuery,那麼仍然可以使用JQuery()而不是$()。
$元素只是一個變量名稱,它是$(元素)的結果的視覺線索。你可以很容易地說var froggy=$(element)
但$元更具可讀性。
_ [Cheerio實現jQuery核心的一個子集...](https://github.com/cheeriojs/cheerio)_ –
您可以從東西返回功能,然後調用它。調用'doc_fn'會更有意義嗎? – tadman