學(xué)習(xí)JavaScript的必備讀物
常常有人要我推薦學(xué)習(xí)JS的書籍或者在線教程??雌饋砻總€人都有很好的理由在JS領(lǐng)域有所行動。如果你對讓人興奮的工作機(jī)會很感興趣的又想要玩一玩有意思的東西,那么JS一定是個很棒的語言。隨著JS的流行度增加,相關(guān)的書籍、博客和教程也隨之大量增多,但是我不可能所有的資源都了解過,但是我看到了一些很不錯的東西也想在這里分享給你。
書籍
請注意,在這里我只會推薦我已經(jīng)看過的書籍,你肯定可以發(fā)現(xiàn)有無數(shù)的書和我推薦的一樣好。
《Nicholas Zakas:JavaScript高級程序設(shè)計(jì)》
這本書一直都是我推薦書單上的第一名,也是我總和任何JS開發(fā)者建議的總放在書架上的一本書。Nicholas Zakas所寫的這本書非常非常奇妙:它概括了JS這門語言主要的知識點(diǎn)。想要讀點(diǎn)基本知識點(diǎn)?你可以在這本書里找到。想要了解JS的OOP思想?也可以在這本書里找到。想要了解文檔對象模型(DOM)?這本書也可以給大家勾畫一個大概。本書內(nèi)容通俗易懂,從JS的基本知識到高級應(yīng)用都有涉獵概括,因此我將它推薦給所有的JS開發(fā)者。
Stoyan Stefanov:JavaScript設(shè)計(jì)模式
要了解現(xiàn)在最常見的JS設(shè)計(jì)模式,以及這些設(shè)計(jì)模式是如何恰當(dāng)?shù)毓芾砗徒M織你的代碼。你所選擇的設(shè)計(jì)模式會成為你的應(yīng)用的基石,當(dāng)你在思考如何構(gòu)建你的站點(diǎn)時,這些設(shè)計(jì)模式會扮演很重要的角色。Stoyan是這世界上最棒的JS開發(fā)者之一,他在Yahoo!和Facebook都工作過也曾參與了YUI的構(gòu)建。Stoyan很了解他在做的事情,而且他致力于普及將常見的設(shè)計(jì)模式。
Stoyan Stefanov:JavaScript面向?qū)ο缶幊讨改?/font>,英文版
JavaScript面向?qū)ο?,請盡情地用你的prototype來嘲笑我好了。因?yàn)镴S不是傳統(tǒng)的基于“類”的面向?qū)ο笳Z言。如果你總是在思考原型集成(prototypal inheritance)和混入(mixin),那么你只會變得很wonky。Stoyan又走在了技術(shù)大潮的浪頭上,他將這個問題劃分成了小問題來解釋。開始的時候他先是穩(wěn)步解釋了一些語言基礎(chǔ)知識讓你在實(shí)踐中去學(xué)習(xí),但是他又很快地投入到解釋OOP是如何工作的,使用者要如實(shí)利用JS的語言優(yōu)勢來構(gòu)建可重用的對象。
Nicholas Zakas:編寫可維護(hù)的JavaScript
我們都希望我們的程序可以飛速地運(yùn)行,所以我們時不時會重構(gòu)優(yōu)化代碼。從學(xué)校學(xué)習(xí)中汲取知識很酷但是我更傾向于從前人的經(jīng)驗(yàn)中獲取資源。這本書將會告訴你如何優(yōu)化你的代碼以提高性能。
David Herman:編寫高質(zhì)量的JavaScript
在我第一次看到這本書的時候,我并沒有100%肯定它就是我想要,我覺得它更像是把其他JS書籍中的內(nèi)容進(jìn)行整合然后編寫出來的。但是我看到Dojo的作者Alex Russell和Chrome Frame fame都推薦了它,我還是買下了它,現(xiàn)在我很慶幸當(dāng)時的舉動。本書的作者是Mozilla TC39的代表,同時也是(無論是學(xué)術(shù)層面上還是工業(yè)界層面上的)編程語言領(lǐng)域的專家。這本書的優(yōu)點(diǎn)之一就在于,它并沒有在針對JS這門語言來闡述,它所提供的種種方法是希望編程人員能發(fā)揮語言的最大作用。本書中澄清了編程語言的每一部分是怎么工作的(比如約束、柯里化或者自動添加分號)。這本書一定適合希望他們對JS的理解能夠更上一層樓的編程人員。
John Resig and Bear Bibeault: Secrets of the JavaScript Ninja
不論你對jQuery抱有什么態(tài)度,不可否認(rèn)的是John Resig(jQuery之父)確實(shí)創(chuàng)造除了最受歡迎JS庫,同時凸顯了JS的作用增加了JS的靈活性。這本書花了4年時間完成,但我覺得等待4年一點(diǎn)都不過分。
淘寶前端工程師 Limu 力薦
彩蛋
我知道大家手頭比較緊,所以如果有免費(fèi)的資源是最好的。我很幸運(yùn)地找到了一個提供一些免費(fèi)資源的站點(diǎn)。由Revolunent創(chuàng)辦的JSbooks提供了一些質(zhì)量不錯的在線資源:
博客
許許多多的人都在博客上分享他們的故事、想法……我們很難辨認(rèn)出到底要持續(xù)關(guān)注誰的博客。隨著閱歷的增加,我嘗試著把關(guān)注的博客的數(shù)量降低,下面這些是我誠摯推薦,認(rèn)為它們非常有用的:
名字已經(jīng)說明了一切。這個站點(diǎn)提供了前后端的JS相關(guān)的新聞和教程。它還會定期整理jQuery的插件。
我并不是Nicolas的粉絲,但是他寫的博客確實(shí)和他的書一樣棒,他的博客中提到的JavaScript的高級應(yīng)用我認(rèn)為每一個開發(fā)者都要銘記在心。
David努力成為一個很優(yōu)秀的開發(fā)者,他參與了MooTools和Dojo框架的開發(fā),現(xiàn)在在Mozilla工作,他的博文有極高的可用性。
這也是一個集合報導(dǎo)和教程的站點(diǎn)。常常讓我想到過去的Ajaxian,我常在這里尋找各種有意思的庫和新的技術(shù)。
這是我唯一會留在收件箱中的郵件訂閱,每一周的推送都非常的有一席。說正經(jīng)的,我不知道Peter Cooper怎么能找到這么多有意思的文章。不過要小心,它可是會傷害你的生產(chǎn)力的。
我認(rèn)為Addy是最天才的開發(fā)者之一,在他的博客中可以看到從jQuery promises到AMD的許多知識,而他發(fā)表在編寫模塊化的JS中的內(nèi)容非常棒。
他是很年輕的開發(fā)者,但是Peter的JS知識非常豐富,我相信他會成為Web開發(fā)的中流砥柱??烊フJ(rèn)識他吧。
你可以開始訂閱Juriy的博客,他是一個生活都離不開ECMAScript的人。
2ality
我從沒有和Axel Rauschmayer博士接觸過,但是發(fā)現(xiàn)這個站點(diǎn)的時候我有一種“我勒個去,這哥們碉堡了”的感覺。當(dāng)你閱讀他的文章的時候,你就會知道為什么我會發(fā)出這樣的感慨了。那些文章都寫的很有深度,就像接觸到了ECMAScript的底層,非常非常的有意思。
Nettuts
是的是的我確實(shí)帶著偏愛來推薦這個站點(diǎn)的,但是它真的非常非常棒。只要看一看這里的文章你一定會同意我說的。:)
課程
如果你不滿足于看書和博客而是想多些一點(diǎn)代碼,那有成千上萬的課程(線上或線下)供你選擇來提升自己的能力:
Nettuts Premium JavaScript Courses(在線)
在這里你不僅可以找到JS的基礎(chǔ)課程,還能找到像Backbone這樣的JS框架和OOP這類話題的在線資源。
The JavaScript Master Class(在線)
我上了由Thomas Fuchs和Amy Hoy授課的在線課程,個人認(rèn)為它非常棒,特別是能直接和講師溝通。
appendTo’s Free JavaScript Training(在線)
8個免費(fèi)的視頻課程幫助你學(xué)習(xí)JavaScript。
Bocoup Training(線上和線下)
Bocoup有很棒的練習(xí)項(xiàng)目,他們提供了一下在線視頻,但是他們的個人練習(xí)課堂才是精華所在。
Codecademy是一個最容易上手學(xué)習(xí)如何用JS編程的方式之一。它是一種交互式在線學(xué)習(xí)平臺,非常有趣,你也可以和小伙伴一起來學(xué)習(xí)。
JavaScript交互式學(xué)習(xí)課程-初級(中文)
課程讓您快速認(rèn)識JavaScript,熟悉基本語法、窗口交互方法和通過DOM進(jìn)行網(wǎng)頁元素的操作,學(xué)會如何編寫JS代碼,如何運(yùn)用JavaScript去操作HTML元素和CSS樣式,為JavaScript深入學(xué)習(xí)打下基礎(chǔ)。
JavaScript交互式學(xué)習(xí)課程-進(jìn)階(中文)
課程從如何插入JS代碼開始,學(xué)習(xí)JS基礎(chǔ)語法、語法、函數(shù)、方法等,讓你掌握J(rèn)S編程思路、知識的使用等,實(shí)現(xiàn)運(yùn)用JS語言為網(wǎng)頁增加動態(tài)效果,達(dá)到與用戶交互的目的。
JavaScript 教程(中文)
本教程是 W3School JavaScript 教程的入門級版本。內(nèi)容包括JS基礎(chǔ)語法,JS HTML DOM,JS對象,JS Window,JS 庫,實(shí)例和測驗(yàn)和參考手冊。
獲取幫助
學(xué)習(xí)一門新語言最難的地方就是找到組織。當(dāng)有問題的時候你總會希望有人可以為你解答:
- JSMentors我和Asen Bozhilov一起創(chuàng)建了JSMentors,希望可以提供一個安全又可以求助的地方給開發(fā)者討論和JS相關(guān)的問題。我們想要做一個對初學(xué)者友好的站點(diǎn),所以我們找了一些有名的JS專家來一同回答問題,另外組隊(duì)也是很棒的想法。
- StackOverflow我個人認(rèn)為這個站點(diǎn)本身就是一個非常好的資源,開發(fā)者可以在上面發(fā)布他們的問題,另外它還有專門的JS的板塊也有和JS相關(guān)的庫比如jQuery的板塊。
- JavaScript Topic:匯聚 JS 優(yōu)秀內(nèi)容
- CSS Topic:匯聚 CSS 優(yōu)秀內(nèi)容
- Reddit上的JavaScript板塊
總結(jié)
希望今天的信息量沒有多到你無法承受,有這么多學(xué)習(xí)JS的資源真是太棒了,我今天所說的只是冰山一角而已。記住,你需要選擇對你最好的方式來學(xué)習(xí)以節(jié)約你的時間。JavaScript是一門很優(yōu)秀的語言,只是你需要花一些時間搞清楚它的各種細(xì)微差別。謝天謝地,你有很多辦法能學(xué)到這門語言,也有地方供你提問。
原文鏈接: Required JavaScript Reading 翻譯: 伯樂在線 - kmokidd