當(dāng)前位置:
首頁(yè) >
网页插件学javascript还是jquery好啊?
發(fā)布時(shí)間:2025/4/5
51
豆豆
生活随笔
收集整理的這篇文章主要介紹了
网页插件学javascript还是jquery好啊?
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章的起因,也是在群內(nèi)交流是回答一個(gè)小伙的問(wèn)題,一扯就停不下來(lái),但由于個(gè)人知識(shí)面覆蓋有限,自身基礎(chǔ)又不夠扎實(shí),僅供參考:
問(wèn)這個(gè)問(wèn)題之前,我個(gè)人建議先搞清什么是jquery,什么是js? jquery的優(yōu)點(diǎn):他是常用的js工具方法的一堆封裝,他在一定程度上加快前端開(kāi)發(fā)的速度,會(huì)縮短項(xiàng)目開(kāi)發(fā)周期,會(huì)減少很多代碼。 缺點(diǎn):因?yàn)閖query內(nèi)部做了很多細(xì)節(jié)的處理,當(dāng)然最終目的是為了方便的調(diào)用。但是有些初學(xué)者誤以為,js的本來(lái)面貌就是這個(gè)樣子。用Jquery去描述業(yè)務(wù)場(chǎng)景,而不是試圖用代碼邏輯來(lái)解決問(wèn)題。所以很多人就此對(duì)jquery造成依賴。很多提問(wèn)的時(shí)候問(wèn),這個(gè)問(wèn)題用jquery怎么解決。 為什么他能夠像現(xiàn)在如此受歡迎,成為一種事實(shí)的標(biāo)準(zhǔn),是因?yàn)樗姆庋b充分考慮了開(kāi)發(fā)者的習(xí)慣,在盡可能大的角度來(lái)方便開(kāi)發(fā)者調(diào)用與二次開(kāi)發(fā),這是他的一個(gè)優(yōu)點(diǎn)之一。具體體現(xiàn)在,類工廠鏈?zhǔn)椒绞降恼{(diào)用,比如: $().show().animate(),比如set,get的統(tǒng)一參數(shù)處理。$().css('width') $().css({ width : 200 }); 而且在早期版本兼容了低版本ie的很多bug,使開(kāi)發(fā)的注意力真正的關(guān)注到邏輯與數(shù)據(jù)上來(lái),而不是成天解決兼容問(wèn)題。 其它優(yōu)點(diǎn)不一一等等。 至于如何使用好jquery,jquery提供的方便快捷封裝在整個(gè)前端開(kāi)發(fā)流程占多大的比例?為什么我們一定要建議先學(xué)js,在學(xué)習(xí)其它框架,這是我們要搞清楚的。 1. 其實(shí)如何使用好jquery,取決于原生js的基礎(chǔ),什么是原生js的基礎(chǔ): 比如:js語(yǔ)句后面到底用不用加分號(hào),不用加分號(hào)時(shí)在哪個(gè)地方有坑? js里邊單雙引號(hào)是否有區(qū)別,他的標(biāo)識(shí)名命名規(guī)則是怎么樣的,為什么prototype與jquery都取$為他的工廠函數(shù)標(biāo)志?如果你將來(lái)寫(xiě)一個(gè),還有沒(méi)有其它符號(hào)可用? js里邊保留字,關(guān)鍵字,有哪些?each與普通的for循環(huán)有多大的區(qū)別,他的好處在哪里,他的壞處在哪里,我們什么時(shí)候該用他,什么時(shí)候不該用他,等等。 還有高級(jí)的,如何實(shí)現(xiàn)一個(gè)類的繼承,如果用jquery方便的繼承,什么閉包,閉包的優(yōu)缺點(diǎn),什么是事件代理,代理的優(yōu)缺點(diǎn)。等等 上面的這些知識(shí),在任何一個(gè)jquery相關(guān)書(shū)籍里邊提的不多,而這些恰恰是一個(gè)js初學(xué)者必須掌握的。 以下圖片來(lái)自:http://m.oschina.net/blog/1754261.JavaScript數(shù)組
2.JavaScript 函數(shù)基礎(chǔ)
3.Javascript 運(yùn)算符
4.JavaScript 流程控制
5.JavaScript 正則表達(dá)式
6.JavaScript 變量
7.JavaScript 字符串函數(shù)
8.DOM 基本操作
2. jquery在整個(gè)開(kāi)發(fā)過(guò)程中充當(dāng)了一個(gè)方便操作dom的工具方法集合,而前端開(kāi)發(fā)除了操作常用的dom之外,還需要操作頁(yè)面的交互數(shù)據(jù),模塊化開(kāi)發(fā),工程師發(fā)布等等。夸張點(diǎn)說(shuō):jquery只是前端開(kāi)發(fā)中的一個(gè)部分,他沒(méi)有任何一處能力完全取代原生js。而且我們需要了解的還有很多,具體見(jiàn)下文。 前面從個(gè)人的角度介紹了一下什么是jquery,然后什么是js,百度很多,不一一介紹。 3. 只有在學(xué)好原生js的基礎(chǔ)上,才能很多的學(xué)習(xí)jquery或其它框架。因?yàn)閖query與其它框架出現(xiàn)的初衷就是加快js開(kāi)發(fā),粗暴的理解,他對(duì)常用的js開(kāi)發(fā)函數(shù)進(jìn)行了封裝,所以js功底扎實(shí),基本看api及說(shuō)明就能很快的入手,這也是jquery及其它框架歡迎的根本。 然后個(gè)人建議:先學(xué)原生js,再學(xué)jquery,然后有空學(xué)習(xí)jquery源碼,才能更好的使用jquery。 然后問(wèn)題來(lái)了,除了jquery之外還有什么值得學(xué)習(xí)的主流js框架? jquery 主要戰(zhàn)場(chǎng)還是在dom操作這塊,順帶封裝了ajax或其它的常用方法。 其它經(jīng)典懷舊的幾個(gè)有空的時(shí)候可以了解一下他們的源碼,mootools, prototype.是他們啟發(fā)了js向工程化,團(tuán)隊(duì)化,協(xié)作化方向發(fā)展的轉(zhuǎn)變, yui雖然聽(tīng)說(shuō)停止開(kāi)發(fā)了,但他的代碼思想與那些yahoo jser付出,努力的結(jié)晶是值得我們學(xué)習(xí)與默拜的。 除了jquery之外,ext是一個(gè)巔峰,需要了解一下。他是初期企業(yè)級(jí)UI框架解決的一個(gè)鼻祖,從一定程度上解決了當(dāng)時(shí)企業(yè)級(jí)應(yīng)用的復(fù)雜界面交互,但是后來(lái)由于界面風(fēng)格的單一化或本身一些性能問(wèn)題,而被一些開(kāi)發(fā)者棄用。 其它類ext的比如:easyui, lightui, j-ui, 這幾個(gè),并沒(méi)有真正意義上顛覆或超越ext,但在天朝本地化或語(yǔ)言或自身業(yè)務(wù)模式上有了一定的微創(chuàng)新或發(fā)展。 由于隨著前端交互或數(shù)據(jù)的提高,對(duì)前端的依賴也是越來(lái)越大,這樣前端的代碼也是越來(lái)越多,這樣的場(chǎng)景下就需要一個(gè)能解決代碼塊與塊之間的調(diào)用,多塊的代碼加載,等等這些問(wèn)題的框架出現(xiàn)。這時(shí)候requirejs,seajs填補(bǔ)了這2個(gè)空白。 然后核心的模塊解決了,塊與塊的問(wèn)題解決了,就剩下打包發(fā)布了,最近業(yè)界有這三個(gè)東西做這方面的工作。 grunt, gulp,fis。 又隨著前端代碼的越來(lái)越復(fù)雜,不得不出現(xiàn)了javascript mvc的解決方案: angularjs, backbone,underscore, 有空的時(shí)候了解一下。 移動(dòng)端的幾個(gè)需要了解一下,jq mobile, zepto.knockout,swipe,iscroll 還有一些劍走偏峰的作品比如:three.js,d3.js,famo.us, 還有一些國(guó)內(nèi)jser的貢獻(xiàn),團(tuán)隊(duì)或個(gè)人的都有。比如qwrap, avalon,wind,kissy,還有一個(gè)百度的七巧板,騰訊的jx, 還有其它的如vue.js, lightbox, artDialog, mydate97。 最后: 正是這些好用的不好用的,好玩的不好玩的,構(gòu)建了這幾年來(lái)前端五彩繽紛的世界,無(wú)論從那一處下手,都能找到好玩的一處。也是正因?yàn)槿绱?#xff0c;所以有很多新人加入這個(gè)行業(yè)的原因或動(dòng)力。所以,堅(jiān)持就是勝利,我為我的選擇努力,我為我的努力堅(jiān)持,我為我的堅(jiān)持一直在期待。前端開(kāi)發(fā)qq群:159758989 ,禁止閑聊,非喜勿進(jìn)~!
總結(jié)
以上是生活随笔為你收集整理的网页插件学javascript还是jquery好啊?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 用CSS伪元素制作箭头
- 下一篇: 解决SpringMVC中的 Could