完全理解jQuery源代碼,在前端行業算什麼水平?


依讀了2周jQuery源碼的人感覺來說,完全理解jQuery,就拿jQuery 1.11這個版本10337行代碼來說,水平已經很不錯了。謙虛點說,已經入門。驕傲點,國內領先水平。但其碼我感覺是js架構之路起行的第一步,完全理解源碼,說明有獨立構建或組織大型web前端框架的能力和基礎。然後看看完全理解jQuery是一個怎麼樣的狀態。

看下面幾個鏈接就明白了:

RubyLouvre/avalon · GitHub

artDialog

aui/artDialog · GitHub(後來的新版代碼有所改變)

沒錯,這兩個裡邊,就是在繼承jquery的基礎上做了自己的創新嘗試。

然後在看下面這位:

[原創] jQuery1.6.1源碼分析系列(停止更新)

是唯一出過jquery源碼分析書的一位:

《jQuery技術內幕:深入解析jQuery架構設計與實現原理》(高雲)【摘要 書評 試讀】

然後在看這位:

jQuery 2.0.3 源碼分析系列

是目前一直在更新的一位,通俗有深度且版本比較新。

在說一下我2周閱讀jquery源碼的心得,初看源碼寫的噁心,再看寫的不錯,細看寫的真是精妙。然後今天在看ext 4.2的源碼,真是流暢易讀。基本來說,看懂jQuery源碼,以後的源碼學習之路可以說,平坦。

然後說是不是高手,高手只是一個自我定位的心理暗示,是一種人格魅力的體現,是業務與技術的完美結合。個人感覺只能無限的接近,不能在有限的生命裡邊到達。我們在通往目的地過程中享受一路的風景,這才是生命的意義。

然後在說前端,前端的核心是js,外圍打醬油的技術太多,不一一列舉。

  • css就像一瓶酒,得品。

html,css總共就那些標籤跟選擇器屬性什麼的,但是要寫一個有擴展性,健壯性或維護性的頁面不容易。現在寫頁面基本條件反射,不是如何快速的完成,而是思考如果有前端界面需求修改,怎麼在修改代碼最少的情況下完成整體需求任務。

  • js就像一把劍,得磨。

js剛開始只是為了較驗,隨便技術社會的發展,承擔的角色越來越重,剛開始玩玩jQuery感覺已經會js了,其實只是冰山一角。隨著對js的了解越來越多,他即變態又可愛,即好玩又難控,即有很多兼容問題,但解決兼容是我們基本生存之道。

  • 人生就是一場夢,得作。

技術只是生活的一部分,曾經雄心鬥志,如今低頭寫碼。改變能改變的,接受不能改變的。人生有限,兄爭朝夕啊。

最後說,什麼時候能閱讀jQuery源碼,我感覺其碼是純js編碼一年以上,js基礎知識沒有盲點。閱讀源碼,確實能學到很多東西。不只是技術,而是一種生活的態度。一種把一件事情做到極致的態度(糖餅語)。

然後下面鏈接分享一下,是目前閱讀研究源碼的一部分資源:

jQuery source viewer

jquery源碼查詢

這些年、我收集的JQuery代碼

jquery1.6中的.prop()和.attr()異同

第三章《遍歷DOM元素》

jquery選擇器

javascript筆記:臨摹jQuery(一)

jQuery 的原型關係圖

jquery選擇器

【原創】jQuery1.8.2源碼解析之jQuery.Callbacks

[原創] jQuery1.6.1源碼分析系列(停止更新)

jQuery event(上)

jquery事件分析

瘋狂秀才 - 博客園

jQuery工作原理解析以及源代碼示例

jquery easyui 作者

raphealguo"blog

jquery源碼閱讀

jQuery工作原理解析以及源代碼示例Decoding jQuery

jquery源碼閱讀英文資料

nuysoft - 博客園

jquery源碼閱讀,這位作者出了一本書叫jquery技術內幕

jQuery技術內幕

adamed的博客

jq源代碼閱讀

貓貓的博客 - ITeye技術網站

jquery源碼分析

jQuery1.6.2源碼分析(一)框架體系研究

jquery框架分析

jQuery 源碼:元素位置

jquery源碼 元素位置

10 個新鮮奇妙的 jQuery 插件

10個jquery插件,裡邊有個jquery滾動條寫的不錯。

妙味課堂:一起學習jQuery源碼【逐行分析jQuery源碼的奧秘】

妙味課堂-視頻教程-www.miaov.com

[知識點類] 妙味課堂:一起學習jQuery源碼【逐行分析jQuery源碼的奧秘】

jQuery 2.0.3 源碼分析Sizzle引擎

jQuery 2.0.3 源碼分析Sizzle引擎

jquery 2.0.3源碼分析 分析Sizzle引擎 - 編譯函數(大篇幅)

mythz/jquip 路 GitHub

jquery 壓縮版

jQuery 2.0.3 源碼分析 回調對象

jQuery 2.0.3 源碼分析 回調對象 - Callbacks

妙味課堂:一起學習jQuery源碼【逐行分析jQuery源碼的奧秘】

jquery源碼解讀-妙味

http://sunnylost.com/article/jquery.core1.html

jQuery 源碼閱讀

華子yjh - 博客園

淺析jQuery基礎框架

Hiro,工作,生活

sizzle源碼

淺談 jQuery 事件源碼定位問題

jQuery1.11源碼分析(1)-----Sizzle源碼概覽[原創]

jQuery1.0源代碼分析之domManip方法(七)

jquery 實現原理

jquery2.0.4源碼分析

jQuery源碼分析系列

通過jQuery源碼學習javascript(一)

web前端開發分享


說明你

1 精通正則表達式

2 了解閉包

3 了解原型鏈

4 精通 DOM API

5 了解各種設計模式(事件、Promise、偽重載、裝飾器模式等)

6 精通 DOM 事件

7 了解舊瀏覽器的各種特性(bug)

8 了解模塊化

9 了解瀏覽器渲染原理

10 精通 AJAX

11 了解 HTTP 請求

可以秒殺中國 80% 的前端。

很厲害了,但是除此之外你還需要

1 掌握 ES 6 所有特性

2 掌握 webpack 等命令行工具

3 學一套前端框架

所以很多人選擇直接學後面這些,速成嘛~

我司寧願招會前者的程序員。


看懂還是很容易做到的,就是時間問題。

放下代碼,自己實現一部分功能,也是很容易做到的,依然還是時間問題。

整合到一起,又這麼牛逼,不是一般人能做到的,這點我很佩服jquery的作者John Resig。


看懂戰爭與和平是托爾斯泰讀者的水平,寫出戰爭與和平是托爾斯泰。


個人認為算是不錯的了,起碼中等水平。但是看懂跟自己能夠寫出又有非常大的差距,所以如果一直保持看懂的水平,那就只能說對js還算熟悉,談不上精通。

繼續前進,相信你能越來越牛。


看團隊的目標和要求吧,庖丁能解牛,但是要他去片牛肉(比如刷火鍋那種)未必也是能手。


如果真正的都理解了(每個人對理解的解釋都不同,這裡說的理解僅從我個人認識出發,對你樓主對理解的定義,我是沒法理解的 =_=|||),偶覺得能算高級前端開發了吧。但是離專家級別還有點距離。專家可能需要再更多的了解業務抽象業務吧。僅個人認為。


大體贊同幾位的回答:正因為你對前端知識體系的不了解,才會提出這樣的問題來。正所謂,不識廬山真面目,只緣身在此山中。由於你還在山上,沒有高于山,自然不知其高。

jQuery 的代碼,整體有一點極客的感覺,有人稱之為一種「個人英雄主義」,雖不是很恰當,卻也道出了 jQuery 源代碼有一種特殊的風格。其結構明晰,高內聚、低耦合,兼具優秀的性能與便利的擴展性,在瀏覽器的兼容性(功能缺陷、漸進增強)優雅的處理能力以及 Ajax 等方面周到而強大的定製功能無不令人驚嘆。能完全讀懂 jQuery 確實可以說明你的 JavaScript 水平已有相當成就,對基本語法(ECMAScript 262 標準)、DOM 編程模型、常見設計模式、類庫組織和開發等方面都有所見識和理解。

這時,如果正好有前端項目,推薦你藉助 jQuery 來寫幾個 UI 部件工具,可以很快地鞏固對 jQuery 的掌握,也能極大地培養類庫封裝與框架開發的感覺。然後,別忘了開闊一下眼界,見識一下 JavaScript 在各種平台中的應用,比如嵌入式應用程序、伺服器應用、Windows應用等,多了解他人開源項目中的設計,縱使它們沒有 jQuery 精妙,也總有精華之處可供學習參考。

但,即使此,離前端高手還遠矣。

實際上,JavaScript 在前端中只是一個方面。前端開發是通過管理頁面在瀏覽器中的呈現來與伺服器程序配合的過程。具體包括 視覺與交互設計、頁面結構、樣式安排、圖片等資源的組織、腳本開發、瀏覽器兼容能力等很多方面。而且,所有這些領域,想要有所建樹都不簡單。

另外,不必太在乎分辨自己處於哪一個水平層次。好好做好日常工作,有項目了就寫,有工作就做,水平即使不高,也熟。從熟到高(從量變到質變)的過程,需要的是思考總結和再實踐。


jQuery 代碼寫的太丑了,總覺得 API 友好的庫其實現總是複雜的。

如果文檔說明不清才建議閱讀,沒必要無目的性的通篇閱讀,看看人家的閱讀筆記就好了。


完全理解不知道什麼意思,有很多種,一是能看懂每一行的意思,二是整理編寫的思路,三是編寫整個庫以及類似庫整合能力,四是為什麼會編寫他,五是融會貫通,能否在他基礎上擴展或者替換他,六是體會作者在迭代中的各種心思。


如果只是看懂的話,就像其他答主說的,只是時間問題。要真正消化其中的思想和技巧,並運用在日常開發中才是關鍵。掌握jQuery用法就像掌握了一套拳法,熟悉jQuery源碼就像對這套拳法的基本功非常紮實和內功修為很高,但前端武林中還有很多絕世武功


jQuery源碼去了注釋和空行7000行左右,看懂它需要js功底和良好的邏輯,看完它需要一定的毅力,它的難點在於作者一些架構和設計思想,不是那麼容易領悟,有些地方寫得也很亂,看它的意義在於借鑒和學習,當然,能看懂它說明本身js水平是很不錯的,至於這個水平在國內處於什麼位置,我想國內目前也有很多js高手,但是相對於廣大程序猿,這類人也是極少數,也有的人寫了幾年js之後擁有看它的源碼的想法,有的人寫了幾個月就能看它的源碼。。。


哈哈,慕課網http://imooc.com上有"jQuery源碼分析"的課程,免費的哦,後續看到這個問題的人希望有幫助。


如果只是看懂的話說明你js語法大部分都會了。。


之前看過jquery整體架構,裡面實現很多hack和兼容性處理,之後通篇看了ng1和並看了react的虛擬dom、掛載過程、setstate後的同步過程,最近在看egg,可是仍然沒有逃出代碼寫的爛的困境。


說明你對javascript的各種技巧和習慣了解很多,但是這無法作為衡量你前端水平的依據。

javascript只是前端技術的一方面而已。


看過很多源碼,依然過不好這一生,寫不出優美的代碼。


就目前來說的話,如果僅僅看懂源碼,說明題主基礎很好了,水平的話中等偏上。

如果你不僅能讀懂還能模仿,不僅能模仿還能整合成自己的小類庫,這樣的話,評分再上一個檔次。大概是這樣的:

其實jQuery的源碼現在看來真的不算驚艷,真正牛的是整個庫的整合和抽象層的設計,這是jQuery最為精髓的地方,如果你的理解更深一層在於整個jQuery的設計及整合思想,可以自己造個輪子啥的,那麼不誇張的說,你應該算是高級別前端梯隊中的人了。大概是這樣的:

相隔多年再答這個問題,頗有一種時過境遷,人還是那個人,jQuery還是那個jQuery但是前端已然不是那個前端了,以前的一個jQuery稱霸天下的時候,那種會了jQuery就掌握全世界的感覺也不復存在。

各種語法糖的盛行,各種框架的出現讓人眼花繚亂目不暇接,學習,學習,學習是前端目前最重要的一個能力。能靜下心來看看源碼也是極好的,從源碼中感悟人生,從源碼中找到屬於自己的靈感,就算現在的前端如此浮躁,也要穩住自己的心,在吃完了各種語法糖之後,淡定的讀一下源碼,品味一下人家的思想,也算是極好的提升了,即時前端如此也要有顆淡然的心。

前端啊,學習能力太重要了,需要持續不斷的更新自己的知識庫,否則一轉眼就是滄海桑田,再一轉眼已經被時代拋棄。

加油,與君共勉。


自己開發一個比較完整的產品或者功能,比看source code更實在一些


真完全理解其中所有東西的人行業TOP 1%都算謙虛了。

說明你有開發框架的能力。

有解決市面上百分之九十九點九九九問題的能力。

有想去哪個互聯網公司就想去哪個互聯網公司的能力。


推薦閱讀:

作為一個剛入門的前端愛好者,以後立志成為前端攻城獅的我,應該要學習哪些方面的知識?
用media screen做響應式布局,為何斷點設為800px時chrome會在783px就變化?
如何評價耗子在segmentfault的《web 安全之 xss 漏洞攻擊》live?
找一個初級的前端開發應該掌握哪些知識點?需要熟練到什麼程度?
grunt 怎樣合併 html ?

TAG:前端開發 | jQuery |