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


文章的起因,也是在群內交流是回答一個小伙的問題,一扯就停不下來,但由於個人知識面覆蓋有限,自身基礎又不夠扎實,僅供參考:

問這個問題之前,我個人建議先搞清什么是jquery,什么是js?
 
 
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初學者必須掌握的。
 
以下圖片來自: http://m.oschina.net/blog/175426

1.JavaScript數組

2.JavaScript 函數基礎

3.Javascript 運算符

4.JavaScript 流程控制

5.JavaScript 正則表達式

6.JavaScript 變量

7.JavaScript 字符串函數

8.DOM 基本操作

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, backboneunderscore, 有空的時候了解一下。
移動端的幾個需要了解一下, jq mobile, zepto. knockout, swipe, iscroll
還有一些劍走偏峰的作品比如: three.js, d3.js, famo.us,
還有一些國內jser的貢獻,團隊或個人的都有。比如 qwrap, avalon, wind, kissy,還有一個百度的七巧板,騰訊的jx,
還有其它的如 vue.js, lightbox, artDialog, mydate97
 
最后:
正是這些好用的不好用的,好玩的不好玩的,構建了這幾年來前端五彩繽紛的世界,無論從那一處下手,都能找到好玩的一處。也是正因為如此,所以有很多新人加入這個行業的原因或動力。所以,堅持就是勝利,我為我的選擇努力,我為我的努力堅持,我為我的堅持一直在期待。
 

前端開發qq群:159758989 ,禁止閑聊,非喜勿進~!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM