閱讀jQuery源代碼帶給我們的18個驚喜
相信大家都非常熟悉jQuery類庫,絕對最受歡迎的JS框架,如果你也有興趣閱讀v源代碼的話,或者你也會有同感。
以下便是閱讀jQuery源代碼后挖掘的18條令人驚奇的信息:
1. sizzle的大小
Sizzle是用來幫助jQuery實現DOM查詢操作的引擎,可能你不知道它占用了jQuery源代碼的22%。
其次最大的特性是$.ajax,占用了jQuery源代碼中的8%。
2. $.grep
這個方法類似underscore中的_.filter方法,使用兩個參數,一個數組變量和一個回調函數,返回通過回調函數為true的元素。
3. 冒泡提醒
jQuery特意的阻止了一個事件類型的氣泡。這就是load事件,jQuery傳遞了一個特別的noBubble:true來阻止事件冒泡到window對象(這可能導致錯誤的匹配了window.load事件)
4. 缺省的動畫速度
jQuery通過快速的變化元素樣式屬性來實現動畫。每一個變化被叫做一個"滴答"。缺省的動畫速度是每13毫秒滴答一次,你可以通過重寫jQuery.fx.interval來修改缺省的值
5. $.fn.addClass接受一個方法
我們通常提供$.fn.addClass一個class定義名稱。但是它同樣可以支持方法。你只需要方法返回一個空格分隔的字符串class定義即可。這個方法甚至接受元素的索引為參數,這樣我們可以構建自己的只能class名。
6. $.fn.removeClass同樣支持
這個方法也可以支持接受方法為參數,和$.fn.addClass一樣。
7. :empty偽選擇器
這個偽選擇器可以匹配所有沒有子元素的元素
8. :lt和:gt偽選擇器
這些偽選擇器基于索引來匹配。例如,$('div:gt(2)')將會返回所有的div除了前3個元素(基于0索引)。如果你提供一個負值,那么就從末尾算起。
9. $(document.ready()使用了promise
jQuery內部使用了jQuery的deferred來保證DOM完整被加載
10. $.type
大家可能都熟悉typeof來判斷數據類型,但是你是否知道jQuery提供了.type()方法?這個方法比瀏覽器本地版本更智能。
例如,typeof(new Number(3))返回了“object”,然而$.type(new Number(3))放回數字。
更確切的說$.type告訴你返回對象的值類型
。。。。。
。。。。。


浙公網安備 33010602011771號