一些人瞧不起 jQuery 的理由是什麼?

如果大家這麼鄙視便捷工具的話,為什麼不所有的程序都用C去寫?

一直覺得jQuery是個雅俗共賞的工具,入門人可以拿來寫入門代碼實現簡單功能,高端應用可以在他的基礎上定製自己所需要的功能。

jQuery是在DOM上比較關注,可是人們為什麼不直接去使用sizzle呢?

如果因為jQuery的使用者會提爛問題就說jQuery低級的話,我們是否要說Windows低級。

在知乎和其他相關論壇里普遍存在這樣的論調:jQuery低級,用jQuery低級,你如果水平低級就去用jQuery,所以就在這裡提了這個問題。


首先這是一個很爛的問題! (本來想寫評論的)

其次,沒人瞧不起jQuery——可能你問的是有人瞧不起寫jQuery的人?

大家瞧不起的也不是寫jQuery的人,瞧不起的是會寫點jQuery就自稱是牛逼前端工程師!!!

jQuery上手簡單是它的優點,因此很多新人都是從jQuery入門JavaScript的(我也是)。現在看自己以前寫的jQuery代碼也很鄙視自己,很爛。http://stackoverflow.com/很多問題都是關於jQuery的,比如說這個
http://stackoverflow.com/questions/8443995/check-for-the-class-in-an-element/8444106。

關於這方面的討論這裡有篇文章:http://net.tutsplus.com/articles/editorials/are-jquery-users-fools/,我翻譯了下:http://island205.com/2011/11/29/%E7%94%A8jquery%E7%9A%84%E9%83%BD%E6%98%AF%E5%82%BB%E5%AD%90%EF%BC%9F/

當然也有人覺得jQuery有缺點,比如說$(":text")這類選擇器,因為有新人會這樣用$(":text,:textarea")。有人也總結了一點點:https://gist.github.com/1432001/aaffd9ccd31248f83d3ec2420a22dc0c084576eb

最後,這是一個很爛的問題!(有摺疊問題的需求了)

補充:這裡發的是問題,不是牢騷,這個問題可以拆成以下幾個方面:

  • 有的人不喜歡jQuery,為什麼?(可以討論下jQuery的優劣,學習知識)

  • 該不該鄙視初學者 ?(哲學問題)


問題標題太過主觀。你用 jQuery 沒人會鄙視你,鄙視的是只會 jQuery API 就號稱自己是做前端的,正是有太多這樣的人,才讓前端開發看起來這麼低端。jQuery 非常優秀,但並不是適用於所有場景的,只會 jQuery API 能解決所有問題嗎?jQuery 只是專註於 DOM 操作的,很多功能都沒有包含在內,而且 jQuery 也很難做細顆粒度的定製。

補充一下:貌似 @interjc 提的問題不太明確,不知到底是說鄙視 jQuery 的質量,還是說鄙視用 jQuery 的人。如果是前者,我想只能是因為覺得自己能寫出比 jQuery 更牛逼的框架的人,我想這樣的人很少吧,被絕世高手鄙視也就認了吧。而對於後者,再高端的開發者都有可能會使用 jQuery,但要能分清楚什麼時候適合用 jQuery,在不適合的時候有能力用其他的方法解決問題,才是最重要的。另外,鄙視不鄙視自然要看以什麼要求來評判對方,如果對方自稱一個資深前端開發人員,結果只會用 jQuery API 做開發,免不了被鄙視。而除了 jQuery 還掌握其他各種解決問題的方法的人,又有什麼理由去鄙視呢?當然,@interjc 說的論調也是因為外面大把的人號稱精通 jQuery,但是找來一用發現離開了 jQuery API 就不能幹活了,不讓人覺得低端也不行啊。

看了 @欲三更 的答案再補充下:

首先我覺得沒人有資格鄙視初學者,大家都是從初學者開始的,重要的是態度。

打個比方,試想如果我用卡片相機拍了一組照片,放在自己的網路相冊上,自己和朋友都覺得不錯,哪怕事實上拍攝水平很爛,也不會有人來說我低端吧。而如果我自信心爆棚拿這些照片去參加專業比賽,那我肯定會被別人鄙視。

對於 jQuery,事實上很多資深開發人員平時都會使用的,至少我見過的一些牛人都沒有拒絕過。另外 @欲三更 同學也說了,學這些東西才花了兩個晚上,然後邊做邊學做了個自認為還不錯的項目。你強調的是時間短和效果不錯,這給人的第一感覺無疑是 「原來做 Web 開發這麼容易,兩天就能學會」。這樣的論調多了,這些技術被人覺得低端就在正常不過了。而如果強調的是「我雖然做了還不錯項目,但是技術上還有很多可以改進的地方」,別人也不會覺得技術本身低端吧。雖然是想說 jQuery 的強大和易用,但是事實上卻給 jQuery 低端論推波助瀾了。


JQ很好上手,這大大降低了前端從業的入門門檻,加之原本前端門檻就很低,使市場上大量充斥著 JQ 程序員。他們可能連 JQ 常用 API 都沒有看全過,大量湧入的行業內造成魚龍混雜的現狀。直接導致了前端招聘成功率變低,招聘成本相對變高。還浪費了面試者和面試官大量時間。此外,JQ的高開發效率也應該讓其他採用原生JS編碼的前端程序員望塵莫及。間接造成擠出效應,他們可能代替了一部分非高級前端,造成"劣幣"驅逐"良幣"的場景。


平常也會用到很多的jquery,它強大而又簡潔的api,多瀏覽器的兼容封裝,的確可以提升不少的效率,我想沒有人會去鄙視jquery,畢竟它是js歷史的一個巔峰之作,但是同時它又導致了前端行業門檻的進一步降低,當然我們不反對使用工具,但是反對只懂工具而忽略了js本質的人,每次面試的時候,總會有號稱xx前端工程師的人,問到會js嗎,說會用jquery,但是再進一步問了解過jquery的程序設計或者是某個api的實現思路嗎,基本上都回答不上來,這不得不讓人扼腕嘆息,知其然而不知其所以然,被工具扼殺了進一步成長的空間,同時也體現出了目前這個行業里一部分人的浮躁,一般這樣的面試者我是不會去考慮的,總之使用工具無錯,也不會被人鄙視,但是如果僅僅只是掌握了一點皮毛,就覺得前端這個行當不過如此的話,那就不得不被人鄙視了。


JQUERY這麼好的工具和框架,為何不用??一般沒有打算自行開發框架需求的話,JQUERY比你寫原生效率得多

但是,所謂「懂JQUERY」的使用者,一般都會去參透每一個方法的實現原理,有些人會選擇去看API,有些人會選擇去看 API + SOURCE,有些人會學著去模擬 JQUERY-SELF 等等

沒必要去鄙視那些使用者,因為你在鄙視人家使用的同時,人家又何嘗不是在鄙視你的效率


通過鄙視一個技術,藉以可以提高自己的虛榮心。

此種現象多出現在一些超級大牛,和超級小牛身上。

是比較原始的生理衝動行為,無太大的技術價值,不值得深究。

XD


最開始接觸前端就是從jquery開始的,雖然只會查api用用。真正「會jQuery」的人應該是理解其實現原理,而不是一個活人版的api文檔。


這個問題很多人沒答道點子上,

鄙視? 看不起? 行

你跟他說,有種你實現一個jQuery的on方法,動態綁定子元素事件,無bug,且可以子元素控制冒泡,來,不服來戰,有種實現個


一些人瞧不起 jQuery 的理由是什麼,我不知道。


反正我從來沒有瞧不起jQuery。我瞧不起的是只會jQuery而對js,框架沒有一定認識的工程師。

另外我覺得jQuery現在確實在走下坡路。瀏覽器兼容問題比以前少了,原生也借鑒jq實現了很多功能。

最近在寫一個chrome插件,主要用react,因為涉及到簡單的DOM操作就引了jQuery。結果現在快寫完了,一個$也沒用。

一年前看到的repo,雖然有些牽強,但是很有意義。https://github.com/oneuijs/You-Dont-Need-jQuery#ajax


勿人人相輕。

忘了從哪本書上看的,總之是老外寫的技術方面的

這本書中對程序員的稱謂有 經驗豐富的 和 經驗稍少點的。而不說什麼能力好的,能力差的。


應該認為是對瀏覽器端開發的理解不夠深入吧 :)


正如上面所說,只會jQuery,卻不了解其實現原理就自稱資深前端工程師的人才會遭到鄙視


看了幾個回答,忍不住想吐槽一下

個人覺得大多數瞧不起jQuery的人,都是有一種懂原生JavaScript(或稱為JavaScript基礎)而產生的優越感,而這種優越感平時很難體現(因為在工程上他們不會比寫jQuery的人速度快),因此只能通過貶低jQuery來體現

這讓我想起多年前搞C的人嘲笑搞Java的人只會用各種第三方工具包。。。

在知識方面寫原生的JavaScript確實要求更高,當遇到一些問題的時候也更容易解決,但其實本身不存在好壞之分,只是功能由你來實現還是別人來實現罷了。難道你用別人實現的功能就低級了?Chrome還用著Apple貢獻的Webkit

如果是學習那麼用原生會更有助於了解基礎,但工程上應該盡量使用第三方公共庫,因為同樣的功能你很難寫得比人家更易讀更易維護。

我平時面試的時候雖然問的問題都會是與原生JavaScript基礎相關的問題,所有題目代碼也都會要求用原生來寫。但做公司項目的時候有框架我會要求組員堅決使用框架,畢竟效率第一,公司項目不是你的技術展示台,也不是為你一個人學習服務的


我覺得這個問題,沒有必要這麼討論,就像沒有完美的人一樣,懂用jquery,又能夠寫原生的javascript豈不是快哉,就像javascript剛誕生的時候,寫c/c++的人,有幾個瞧得起寫javascript的人,那時還沒有叫前端工程師這個職位,用最短的時間去完成一件事,就是最好的,而不是你使用什麼語言,目的達到,就行


jQuery(包括其他的各種類庫)只是包裝好的方法多一些、插件雜一些而已,但是不代表用jQuery就是低級吧,不愛用某些方法覺得效率低下可以不用啊,別人的插件垃圾可以自己擴展啊,全部開源了覺得有bug可以自己改啊。每天上網都看見這種論調,快要吐了。

每次發送請求之前就要自行判斷一下瀏覽器和操作系統,每個問題都自己造輪子寫一個千瘡百孔的類去實現,有現成的不用,所有的過程都用原生js自造,這就是高級的程序員所追求的么?

扳手可以用來砸人,也能修車。可好多人只記得他砸人的功能了。

------------------------

另外這裡只是說jQuery,好多人硬要扯到前端上面來。個人以為前端的主要意義在於解決如何實現更合理的交互及頁面呈現上,jQuery從某種程度上幫助人們更進一步的擺脫實現過程上的糾結,這不好么?

------------------------

有些人對工具、技能和技術過於崇拜,以至於忘記了思路和方法才是精髓。

------------------------

最近一直在思考的問題:人們一直在使用工具研究工具,把工具開發和使用的更好,卻忘記了他們本來想要用工具來幹什麼。電腦、手機、程序、工作,皆是如此。


如果看不起jQuery的論調言之無物,那麼就是那些論壇什麼的太弱了貝,不去就好了。我咋就沒看到過看不起jQuery的呢?我只見過批評的。


就好像你吃飯:

計算機基礎是米飯饅頭,編程語言是菜,C、JAVA、.net都是大魚大肉,js、html、xml都是青菜,還有其他perl、python等等別的菜。喜歡吃哪樣只有你自己知道,別人認為好吃你認為不好吃還不是一樣。

我們吃飯的目的是什麼?果腹,享受。

只要達到你最終的目的即可。

有錢人多吃肉,沒錢人多吃菜,沒什麼不好的。

——————————————————————


jquery是js的一個庫。。

會什麼都無所謂,關鍵是,你能解決問題。


jQuery很牛逼 寫jQuery的人比這裡每個人都要牛逼

他現在在 Khan Academy 一個非盈利組織工作,他寫過n本暢銷書

jQuery改變了javascript的歷史 讓很多初學者愛上了這門原本以為很晦澀的語言(我自己就是)

他們還有什麼理由鄙視它呢?

有鄙視和罵街的時間還不快去寫個自己認為完美的框架?


推薦閱讀:

如何看待 jQuery?
為什麼現在很多富web應用只支持chrome即使最新版edge都不支持?
DOM與BOM分別是什麼,有何關聯?
為什麼 Chrome 不修這個 bug?

TAG:前端開發 | JavaScript | jQuery | 前端開發框架和庫 |