標籤:

如何學習jQuery?


jquery的優點:他是常用的js工具方法的一堆封裝,他在一定程度上加快前端開發的速度,會縮短項目開發周期,會減少很多代碼。

缺點:因為jquery內部做了很多細節的處理,當然最終目的是為了方便的調用。但是有些初學者誤以為,js的本來面貌就是這個樣子。用Jquery去描述業務場景,而不是試圖用代碼邏輯來解決問題。所以很多人就此對jquery造成依賴。很多提問的時候問,這個問題用jquery怎麼解決。

為什麼他能夠像現在如此受歡迎,成為一種事實的標準,是因為他的封裝充分考慮了開發者的習慣,在儘可能大的角度來方便開發者調用與二次開發,這是他的一個優點之一。具體體現在,類工廠鏈式方式的調用,比如:

$().show().animate(),比如set,get的統一參數處理。$().css("width") $().css({ width : 200 });

而且在早期版本兼容了低版本ie的很多bug,使開發的注意力真正的關注到邏輯與數據上來,而不是成天解決兼容問題。

其它優點不一一等等。

至於如何使用好jquery,jquery提供的方便快捷封裝在整個前端開發流程佔多大的比例?為什麼我們一定要建議先學js,在學習其它框架,這是我們要搞清楚的。

1. 其實如何使用好jquery,取決於原生js的基礎,什麼是原生js的基礎:

比如:js語句後面到底用不用加分號,不用加分號時在哪個地方有坑?

js裡邊單雙引號是否有區別,他的標識名命名規則是怎麼樣的,為什麼prototype與jquery都取$為他的工廠函數標誌?如果你將來寫一個,還有沒有其它符號可用?

js裡邊保留字,關鍵字,有哪些?each與普通的for循環有多大的區別,他的好處在哪裡,他的壞處在哪裡,我們什麼時候該用他,什麼時候不該用他,等等。

還有高級的,如何實現一個類的繼承,如果用jquery方便的繼承,什麼閉包,閉包的優缺點,什麼是事件代理,代理的優缺點。等等

上面的這些知識,在任何一個jquery相關書籍裡邊提的不多,而這些恰恰是一個js初學者必須掌握的。

圖太多不貼了,只貼一張:

其它的看這兒:

網頁插件學javascript還是jquery好啊?

2. jquery在整個開發過程中充當了一個方便操作dom的工具方法集合,而前端開發除了操作常用的dom之外,還需要操作頁面的交互數據,模塊化開發,工程師發布等等。誇張點說:jquery只是前端開發中的一個部分,他沒有任何一處能力完全取代原生js。而且我們需要了解的還有很多,具體見下文。

前面從個人的角度介紹了一下什麼是jquery,然後什麼是js,百度很多,不一一介紹。

3. 只有在學好原生js的基礎上,才能很多的學習jquery或其它框架。因為jquery與其它框架出現的初衷就是加快js開發,粗暴的理解,他對常用的js開發函數進行了封裝,所以js功底紮實,基本看api及說明就能很快的入手,這也是jquery及其它框架歡迎的根本。

然後個人建議:先學原生js,再學jquery,然後有空學習jquery源碼,才能更好的使用jquery。

然後問題來了,除了jquery之外還有什麼值得學習的主流js框架?

jquery 主要戰場還是在dom操作這塊,順帶封裝了ajax或其它的常用方法。

其它經典懷舊的幾個有空的時候可以了解一下他們的源碼,mootools, prototype.是他們啟發了js向工程化,團隊化,協作化方向發展的轉變,

yui雖然聽說停止開發了,但他的代碼思想與那些yahoo jser付出,努力的結晶是值得我們學習與默拜的。

除了jquery之外,ext是一個巔峰,需要了解一下。他是初期企業級UI框架解決的一個鼻祖,從一定程度上解決了當時企業級應用的複雜界面交互,但是後來由於界面風格的單一化或本身一些性能問題,而被一些開發者棄用。

其它類ext的比如:easyui, lightui, j-ui, 這幾個,並沒有真正意義上顛覆或超越ext,但在天朝本地化或語言或自身業務模式上有了一定的微創新或發展。

由於隨著前端交互或數據的提高,對前端的依賴也是越來越大,這樣前端的代碼也是越來越多,這樣的場景下就需要一個能解決代碼塊與塊之間的調用,多塊的代碼載入,等等這些問題的框架出現。這時候requirejs,seajs填補了這2個空白。

然後核心的模塊解決了,塊與塊的問題解決了,就剩下打包發布了,最近業界有這三個東西做這方面的工作。

grunt, gulp,fis。

又隨著前端代碼的越來越複雜,不得不出現了javascript mvc的解決方案:

angularjs, backbone,underscore, 有空的時候了解一下。

移動端的幾個需要了解一下,jq mobile, zepto.knockout,swipe,iscroll

還有一些劍走偏峰的作品比如:three.js,d3.js, famo.us,

還有一些國內jser的貢獻,團隊或個人的都有。比如qwrap, avalon,wind,kissy,還有一個百度的七巧板,騰訊的jx,

還有其它的如vue.js, lightbox, artDialog, mydate97。

最後:

正是這些好用的不好用的,好玩的不好玩的,構建了這幾年來前端五彩繽紛的世界,無論從那一處下手,都能找到好玩的一處。也是正因為如此,所以有很多新人加入這個行業的原因或動力。所以,堅持就是勝利,我為我的選擇努力,我為我的努力堅持,我為我的堅持一直在期待。

在想學習就進個前端開發qq群:375042952 !


我就假設你懂HTML和CSS

另外你只提到了jquery這一個詞、那麼我也假設你懂一點js。

以上成立、我推薦一本《鋒利的jquery》這本書、夠你入門學習了、對於初學者很不錯。


這都2014年了吧, 學JQuery就先熟悉下HTML DOM的相關知識, 然後看看JQ官方文檔, 找點教程隨便玩玩就好了。。。


編程學習最好的方式是邊學邊練,推薦你看看這些編程小挑戰,寓教於樂:

jQuery代碼小挑戰:初級(一) 極客標籤

jQuery代碼小挑戰:初級(二) 極客標籤


推薦閱讀:

jQuery 為什麼要劃分.bind()和.live()?
?基於asp.net,jquery,bootstrap的web應用開發是明智的選擇嗎?
為什麼一些大公司願意無償提供CDN服務?
AJAX載入了HTML但是HTML裡面的CLICK事件無效?

TAG:jQuery |