想學(xué)習(xí)javascript JS和jQuery哪個(gè)重要 先學(xué)哪個(gè)
筆者以自己身學(xué)習(xí)和使用經(jīng)驗(yàn)分享給大家,有任何問(wèn)題或疑惑,歡迎留言
在回答題目問(wèn)題前,首先大家需要了解下什么是js,什么是jQuery

js,即JavaScript
在1995年時(shí),由Netscape公司的Brendan Eich,在網(wǎng)景導(dǎo)航者瀏覽器上首次設(shè)計(jì)實(shí)現(xiàn)而成。因?yàn)镹etscape與Sun合作,Netscape管理層希望它外觀看起來(lái)像Java,因此取名為JavaScript
JavaScript一種直譯式腳本語(yǔ)言,是一種動(dòng)態(tài)類型、弱類型、基于原型的語(yǔ)言,內(nèi)置支持類型。

jQuery
jQuery是一個(gè)兼容多瀏覽器的javascript庫(kù),核心理念是write less,do more(寫得更少,做得更多)

通過(guò)上面的簡(jiǎn)單介紹,想必大家已經(jīng)知道了最重要的一點(diǎn),即:jQuery是一個(gè)javascript庫(kù);
那么不用筆者強(qiáng)調(diào),大家應(yīng)該都知道js和jQuery哪個(gè)更重要,先學(xué)哪個(gè)
其實(shí)只要學(xué)好了javascript,使用jquery將不會(huì)有什么問(wèn)題
依筆者經(jīng)驗(yàn),新手程序員必須花時(shí)間重點(diǎn)學(xué)習(xí)一下javascript;
至于jQuery可以直接在使用時(shí)參考jQuery參考文檔,不需花太多時(shí)間在上面,當(dāng)然如果讀者時(shí)間充裕,也可以學(xué)習(xí)下jQuery源碼,一邊更好的了解jquery實(shí)現(xiàn)原理
腳本之家小編小結(jié):
想學(xué)習(xí)js(javascript),必須學(xué)習(xí)原生的js 代碼,這樣才能了解js的精髓之所在。而jquery就是js的庫(kù),但是在實(shí)際應(yīng)用中如果大量使用js推薦使用jquery,比較jquery已經(jīng)對(duì)多瀏覽器的兼容性好,省去了很多麻煩。不用考慮兼容性。如果只會(huì)jquery而不會(huì)js不利于其它編程語(yǔ)言的學(xué)習(xí)。
javascript和jquery這兩者之間幾乎沒(méi)有可比性。
雖然jquery基于javascript,但是實(shí)際上jquery是和javascript完全不同的兩種語(yǔ)言,jquery實(shí)際上是一種邏輯式語(yǔ)言和純粹的函數(shù)式語(yǔ)言的結(jié)合體。由于這兩個(gè)特性,因此jquery對(duì)DOM的操作極度簡(jiǎn)化。使用jquery往往可用一兩行代碼實(shí)現(xiàn)javascript原生代碼幾十甚至上百行代碼才能實(shí)現(xiàn)的功能。
但是jquery是一個(gè)特化的框架,它不是一個(gè)完整的解決方案,仍然離不開(kāi)javascript。
如果想要一個(gè)基本上不依賴于原生javascript,可以嘗試Sencha。
各種封裝,包括jq, dojo等等,主要目的就是爲(wèi)了省心,拿jq來(lái)說(shuō):
JQ對(duì)不同瀏覽器的事件,DOM對(duì)象,都進(jìn)行了封裝,各種操作都可以直接兼容各種瀏覽器, 要知道, 不同瀏覽器的區(qū)別不僅僅是在CSS里寫"-webkit-"還是"filter"的區(qū)別, 連事件模型這種底層的東西都不一樣= =
JQ特有的CSS-LIKE選擇器, 鏈?zhǔn)綄懛? 封裝的各類animate函數(shù), 封裝了的異步加載, 都大幅提高了開(kāi)發(fā)效率, 減少重復(fù)勞動(dòng)
JQ用delay和一系列的函數(shù)封裝了AJAX操作, 這個(gè)功能目測(cè)還在不斷改進(jìn)和完善. 反正是比JS省心就是了.
其他就是有些常用函數(shù)JQ有所以不用自己寫了,你比如瀏覽器檢測(cè)...
插件不斷豐富, 資料豐富 等等
當(dāng)然,這樣也導(dǎo)致了
JQ比原生JS慢上 10倍(chrome)~100倍(ie). 具體數(shù)忘了, 反正是這個(gè)數(shù)量級(jí)的...尤其是有些人喜歡濫用選擇器和不用鏈?zhǔn)綄懛?br />
所以說(shuō), 如果只用一句JS就可以解決的問(wèn)題, 就不要用JQ了啊親...親測(cè)$('#x')比getElementById('x')慢40倍
這是@TooBug兄的實(shí)測(cè)代碼http://fiddle.jshell.net/toobug/mZPXq/
JQ也不見(jiàn)得適用所有情況就是了, 網(wǎng)站規(guī)模更大就會(huì)凸顯JQ的不足. 比如沒(méi)有命名空間- -. 很多網(wǎng)站是根據(jù)自己的情況建立自己的函數(shù)庫(kù).
題外話, 如果項(xiàng)目相比"一個(gè)網(wǎng)頁(yè)"更偏向"一個(gè)APP"的情況, jq 不見(jiàn)得是最合適的
談性能一般得看你的業(yè)務(wù)復(fù)雜度、開(kāi)發(fā)能力、團(tuán)隊(duì)規(guī)模,不能一概而論
1.業(yè)務(wù)復(fù)雜度高的項(xiàng)目或網(wǎng)站,開(kāi)發(fā)能力不是很強(qiáng)的團(tuán)隊(duì),采用原生JS都會(huì)沒(méi)有機(jī)會(huì)讓你考慮性能,兼容性就是很大的障礙;
2.業(yè)務(wù)復(fù)雜度低,就Hello world的功能,就無(wú)所謂性能;
3.如果團(tuán)隊(duì)牛叉、業(yè)務(wù)復(fù)雜的時(shí)候,代碼可維護(hù)性才是最重要的,性能調(diào)優(yōu)只會(huì)在真正出現(xiàn)渲染瓶頸的時(shí)候才做;
4.性能還得往前看,知道Office為啥成功吧,因?yàn)樗麄円恢蓖翱?,電腦的處理能力越來(lái)越強(qiáng)了,啥問(wèn)題都不是問(wèn)題了。
1、jQ等框架解決易用性和兼容性問(wèn)題,效率稍低
2、原生js解決運(yùn)行效率問(wèn)題,兼容比較麻煩
3、JQ的優(yōu)勢(shì)是能讓程序員多活好幾年,原生js能讓程序員水平提高一個(gè)檔次
其實(shí)jquery和原生JS并沒(méi)有什么很大的區(qū)別 jquery底層還是調(diào)用原生的JS 只不過(guò)jquery的api封裝了瀏覽器的差異性 為開(kāi)發(fā)提供了便捷處理方式
js學(xué)好就都搞定了。jquery只是一個(gè)js的框架而已,js的框架多著呢。這個(gè)只是比較好而已。強(qiáng)烈建議學(xué)習(xí)js,做項(xiàng)目的時(shí)候用jquery就行了。
自己學(xué)習(xí)的時(shí)候 js的優(yōu)勢(shì)就是你學(xué)到的東西更多一點(diǎn)處理瀏覽器之間的兼容問(wèn)題之類的。會(huì)給你積累經(jīng)驗(yàn)。
做項(xiàng)目的時(shí)候jquery的有點(diǎn)就是效率高,開(kāi)發(fā)成本降低了N倍。
4、js:簡(jiǎn)單的東西實(shí)現(xiàn)起來(lái)很復(fù)雜
jquery:復(fù)雜的東西實(shí)現(xiàn)起來(lái)很簡(jiǎn)單
論性能,jquery差太多了
5、jquery是用js編寫的函數(shù)庫(kù),把我們平時(shí)經(jīng)常用到的效果都封裝實(shí)現(xiàn)了,再使用時(shí)只需要調(diào)用即可。需要DIY的話,當(dāng)然還是要用到JS了。
6、js是基礎(chǔ),jQuery只不過(guò)是一種工具而已,基礎(chǔ)很重要
http://www.dhdzp.com/article/28056.htm
就目前看到的,大多數(shù)人用jquery無(wú)非兩個(gè)方面,一個(gè)dom選擇,以及衍生出來(lái)的.children,.siblings 等等,再一個(gè)就是event事件綁定,其他什么循環(huán),方法聲明啊,包括常用到的settimeout不都是原生的嗎。
我覺(jué)得jquery和原生根本不應(yīng)該認(rèn)為是對(duì)立關(guān)系,一個(gè)jquery高手肯定也會(huì)用到j(luò)s類啊,理解原型鏈啊,理解dom這些東西,所以不應(yīng)該認(rèn)為用原生的就是厲害,用jquery就是不行這樣的想法。
你html結(jié)構(gòu)復(fù)雜,用jquery選擇器再方便不過(guò)了,設(shè)計(jì)要求的效果特別苛刻,用jquery的動(dòng)畫和特效再適合不過(guò)了,這些都是無(wú)可厚非的事情,但是你不可能一點(diǎn)不用到原生js而只用jquery吧,那是不可能的,變量聲明都是原生js。
所以面試的時(shí)候?qū)γ鎲?wèn)你原生js用的怎么樣的時(shí)候你大可自信的說(shuō),除了 dom 選擇和 eventlisterner不太熟以外,其他都沒(méi)問(wèn)題
- 新手學(xué)習(xí)JQuery基本操作和使用案例解析
- jQuery學(xué)習(xí)之DOM節(jié)點(diǎn)的插入方法總結(jié)
- jQuery學(xué)習(xí)筆記之入門
- JQuery學(xué)習(xí)總結(jié)【二】
- JQuery學(xué)習(xí)總結(jié)【一】
- jQuery學(xué)習(xí)筆記——jqGrid的使用記錄(實(shí)現(xiàn)分頁(yè)、搜索功能)
- jQuery學(xué)習(xí)心得總結(jié)(必看篇)
- 分享jQuery插件的學(xué)習(xí)筆記
- jQuery學(xué)習(xí)筆記之Ajax用法實(shí)例詳解
- jquery動(dòng)畫效果學(xué)習(xí)筆記(8種效果)
- JQuery中使用.each()遍歷元素學(xué)習(xí)筆記
- jQuery從新手到高手的超詳細(xì)學(xué)習(xí)筆記(代碼示例)
相關(guān)文章
用JavaScript實(shí)現(xiàn)對(duì)話框的教程
這篇文章主要介紹了用JavaScript實(shí)現(xiàn)對(duì)話框的教程,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
淺談JavaScript 標(biāo)準(zhǔn)對(duì)象
下面小編就為大家?guī)?lái)一篇淺談JavaScript 標(biāo)準(zhǔn)對(duì)象。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
JavaScript DOM 學(xué)習(xí)第五章 表單簡(jiǎn)介
在這一章我主要介紹一些用來(lái)檢測(cè)用戶輸入的代碼,利用這些代碼,你也可以寫一些自己的檢測(cè)函數(shù)。2010-02-02
JavaScript中的關(guān)聯(lián)數(shù)組問(wèn)題
這篇文章主要介紹了JavaScript中的關(guān)聯(lián)數(shù)組問(wèn)題的相關(guān)資料,需要的朋友可以參考下2015-03-03
在JS中操作時(shí)間之getUTCMilliseconds()方法的使用
這篇文章主要介紹了在JavaScript中操作時(shí)間之getUTCMilliseconds()方法的使用,是JavaScript入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
JavaScript window.document的屬性、方法和事件小結(jié)
document屬性作為window對(duì)象的一個(gè)子對(duì)象被創(chuàng)建,是用于訪問(wèn)頁(yè)面中所有元素的對(duì)象,這里簡(jiǎn)單整理下,方便學(xué)習(xí)js的朋友2012-10-10
javascript實(shí)現(xiàn)的網(wǎng)頁(yè)局布刷新效果
AJAX,近幾年火熱起來(lái)的一個(gè)詞.什么是ajax本文就不介紹了,其實(shí),AJAX也就是 javascript腳本的應(yīng)用.全拼是:AsynchronousJavaScript+XML .現(xiàn)在我們就來(lái)看一個(gè)用javascript實(shí)現(xiàn)的局部刷新2008-12-12

