出去打工和儿子租房
  • JQuery】如何高效地閱讀 jQuery 源碼?

    2021-12-15 16:59發布

    2條回答
    aijingda
    2樓 · 2021-12-16 15:49

    1. jQuery 里面有很多東西是出于兼容性,歷史遺留。

    比如 .ready() 之類的函數,為什么會很scroll 有關,那是為了兼容某些ie。這種代碼對于編程思想來說不僅沒用,而且是雜音,你要篩選出來就得了解這段代碼的變動,費心費力得不償失。

    2. jQuery 里面的代碼不一定是最優的,例如事件委托,每一次事件觸發都要調用選擇器,實際上是效率很低的。但是我又比較懶,沒有提交patch。

    3. jQuery 實際上很容易寫出來一個 barebone alternative,在使用的過程中多想,多思考多總結就可以了。

    4. jQuery 這類框架里真正有思維挑戰性的東西不多,一半以上是堆代碼而已,剩下的一點價值在于架構、抽象、擴展能力。

    5. 我有一句話與所有的同行分享:工程師讓需求成為現實,優秀工程師化復雜為簡單,頂尖工程師變不可能為可能;架構師掌握現在,優秀架構師展望未來,頂尖架構師創造時代。

    jQuery 的設計目的是,讓前端工程師的工作更簡單更輕松,但它并不適合所有的前端工程師,假如你的目標是成為優秀架構師、頂尖架構師的話,你在jQuery里也看不清未來。

    lucky璐呀
    3樓 · 2022-01-05 09:47

    嘗試把jquery拆分為ecma擴展(以及emitter promise和queue),dom兼容性問題(compressed && gziped 小于14k,嘗試理解哪些函數我不提供兼容性就不能使用,哪些我可以接受原生寫法,同時包括一個自己寫的css3選擇器) , 鏈式調用(嘗試理解用戶需求,理解怎么寫方便),動畫庫(你是不是可以jq和css3兼容呢)。

    相關問題推薦

    • 回答 9

      jQuery是庫,不是框架。庫只管引進來使用,除了庫接口,沒有其他約束,隨便怎么用,free style。而框架則有著各種各樣的嚴格約束。

    • 回答 4

      *{undefinedmargin:0px;padding:0px;}.main{undefinedcursor:pointer;}.list{undefinedborder:1px solid black;display:none;}.list li{undefinedcursor:pointer;border:1px solid red;list-style:none;}#noPopEvent...

    • 回答 6

      id、name、class這三種會了就行了,后面在實踐中慢慢學習吧。。不過現在純前端好像都不咋用jquery了

    • 回答 5

      文檔過一遍,感覺理解了寫一個todolist,然后把react-router文檔過一遍,寫一個todolist,最后把redux文檔看一遍,寫一個todolist。這樣下來,react全家桶基本理解了

    • 回答 6

      前端技術每年都會不斷更新,一位好的Web前端開發工程師在知識體系上既要有廣度,又要有深度,前端技術工程師缺口非常大。技術的發展規律其實,技術的發展趨勢就是追求更高的復用性,更簡便的業務代碼寫法,所以最終都會要求跨平臺、都會徹底分離非業務邏輯。j...

    • 回答 3

      有一定影響,而且不僅對蜘蛛,如果用戶瀏覽器把js禁用的話也顯示不了

    • 回答 5

      國外還有 Amazon, 全球最大的電子商務網站。還有微軟,很多很多。

    • 回答 4

      前端框架的vue.js,angular.js,可視化工具d3.js,移動端:zepto等

    • 回答 6

      最接近替代品的當然是Zepto。不過如果你沒有legacy的代碼要維護,又只需要支持green browsers,可以考慮完全用標準api。

    • 回答 1

      1

    • 回答 5

      兩個都不學寫網站一點問題都沒有。工具而已,寫代碼的時候突然需要了現學現用都行。jquery 是方便你不使用原生js的情況下直接調用一些控制element動態響應的抽象方法 的函數庫而boostrap是一個前端框架,主要作用是內置了很多全局css樣式,寫前端的時候隨便用...

    • 回答 6

      一個很明顯的缺點就是,太大。對于一些比較小的項目確實可以做到快速開發,但是現在的jQuery太臃腫了,有很多用不到的功能。所以現在有了很多精簡jQuery的項目。另外就是全DOM操作,鉤子往往會依賴標簽,如果依賴jQuery來搭建頁面的話(比如后臺輸出json,然...

    • 回答 2

      angularjs這個類庫本身就借助了jquery的一個弱化版本jqLite來操作html中的dom樹,所以angularjs中使用jquery是完全沒有問題的,相反的如果你使用angularjs做項目時間越長你會發現angularjs只有配合jquery才能更好的進行開發。尤其在directive中操作dom元素,...

    • 回答 3

      jquery有關于淡入淡出效果的方法,一共四個,分別是:fadeIn()fadeOut()fadeToggle()fadeTo()jQuery fadeIn() 用于淡入已隱藏的元素$(button).click(function(){ ??$(#div1).fadeIn(); ??$(#div2).fadeIn(slow); ??$(#div3).fadeIn(3000); });jQuery .....

    • 回答 4

      下面我們要在這個對象上掛載一個extend方法,用于讓開發者為我這個對象添加功能和方法。12345var $ = {???extend:function(ob){??????/**暫時不管里面寫什么**/???} ?}現在,我們就在$這個對象上添加了一個extend方法,外部可以通過$.extend(obj...

    沒有解決我的問題,去提問
    出去打工和儿子租房