Zepto源碼筆記(一)

最近在研究Zepto的源碼,這是第一篇分析,歡迎你們繼續關注,第一次寫源碼筆記,但願你們多指點指點,第一篇文章因爲首次分析緣由不會有太多幹貨,但願後面的文章能成爲各位大大心目中的乾貨。數組

 

Zepto是一個匿名函數的運行結果,而zepto是該匿名函數中定義的一個對象,注意區分函數

 

 zepto.matches 

match = ~zepto.qsa(parent, selector).indexOf(element)


zepto.qsa
:zepto優化過的選擇器優化

zepto.qsa(parent, selector).indexOf(element):若選擇器返回值中沒法找到element則該語句運行值爲-1spa

~zepto.qsa(parent, selector).indexOf(element)  :對後面的值進行取反,運算符優先級低於"."code

 

function type(obj)

若爲null則返回"null"對象

不然,返回class2type[class2type.toString(obj)]blog

zepto會在代碼初始化部分初始化class2type對象:element

$.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
    class2type[ "[object " + name + "]" ] = name.toLowerCase()
})

 

function compact

返回不含null和undefined的數組(undefined == null 爲真,0 == nul和'' == null爲假)zepto

相關文章
相關標籤/搜索