一。 入門級
:就是有一定的基礎(chǔ)(比如最常見的HTML標簽及其屬性、事件、方法;最常見的CSS屬性;基礎(chǔ)的Javascript編程能力),能夠完成一些簡單的WEB前端需求。
推薦:《Javascript dom 編程藝術(shù)》
理由:此書絕對是入門的好書,本人也是在接觸JS一段時間后才看的這本書。此書從JS的歷史 - JS基礎(chǔ)語法知識 -
DOM介紹和簡單的使用?,F(xiàn)在這本書已經(jīng)出了第二版,需要的朋友直接第二版就行。
評價:簡潔,實用,詳細,易懂,書不厚,相信很快就能看完。
當然,作為入門書的話《Javascript權(quán)威指南》也非常強大(這名字可不是白起),其實說起來也慚愧,本人至今都沒有買過這本書,最開始是因為這個書實在是小貴,只好借朋友的看,不過也就看了個周末。網(wǎng)上關(guān)于此書的評價很多,意思大概都是說這書就是一個JS的文檔手冊,如果你有閑錢,并且習慣翻書查詢,那么就來一本吧。順便提醒一句,這本書的第六版英文版已經(jīng)出來了。
二。初級開發(fā):本人以前的DEV
leader兼恩師這么說過:“初級開發(fā)人員的標志就是需要在中級和高級開發(fā)的指導下完成工作”。首先不要苛責代碼的對錯嚴謹,畢竟每個程序員都有這樣的一個過程,就是這個級別的特征。
推薦:《javascript高級程序設(shè)計》(第二版)
理由:這本書的作者是 Nicholas C.Zakas ,博客地址是 #/
,大家可以去多關(guān)注,雅虎的前端工程師,是YUI的代碼貢獻者,可想而知這本書得含金量,他出的書都廣受好評。這本書已經(jīng)出了第二版,而且與第一版相比內(nèi)容更新很大,直接第二版就行。不要被書名的“高級”唬住,只要有JS基礎(chǔ)語法知識和DOM基礎(chǔ)知識就行,而且本書開始階段還是介紹JS和DOM的語法知識。
評論:重點推薦一下第五章(類型),第六章(OOP),第七章(匿名),多看幾遍,至少要完全看明白,能為以后進階打好基礎(chǔ),個人感覺這幾章是本書的精華所在。這本書在入門的時候看節(jié)奏會快了一些,所以不建議初學者看,可是相對于我一會要介紹的書又算基礎(chǔ)一點,所以建議先閱讀完這本書,對瀏覽器兼容和語法知識有一定了解之后再往下閱讀。
推薦:《高性能 Javascript》《Javascript語言精髓》
理由:本人先看的是《高性能JS》,這本書還是 Nicholas C.Zakas
所著,經(jīng)典之作,書中大量舉例了各種不同寫法的Javascript在瀏覽器中的性能情況,對規(guī)范Javascript代碼和提升性能有很好的幫助,最后提到了很多工具和性能測試的方法,都是灰?;页S袑嶋H作用的,看得出作者很厚道(好吧,偶承認了,偶是他的粉絲)^_^,記憶最深的一句話:“如果
Javascript 執(zhí)行了幾秒鐘,那么很可能是你做錯了什么”;;
《語言精髓》和《高性能》有少部分關(guān)鍵知識都重復提到了,可是為什么要推薦這本書,因為本書對JS語言本質(zhì)的描述太棒了,這是一本介紹Javascript語言本質(zhì)的權(quán)威書籍,從
“對象”,“函數(shù)”,“繼承”,“數(shù)組”等等多個重要知識著手。我補一句話 - 本書需要反復閱讀。
評論:都是好書,都很薄,而且所說的內(nèi)容只要有基礎(chǔ)都不難。相信讀完之后會對JS又有新的認識,且對以后的代碼規(guī)范和瀏覽器差異性等高級問題有了新的認識,如果讀完之后會有種被灌頂?shù)母杏X,那么恭喜你,你離中級不遠了。
三。中級開發(fā):還是本人以前的DEV
leader兼恩師這么說過:“中級開發(fā)人員的標志就是在高級開發(fā)或架構(gòu)師較少的指導下高質(zhì)量的完成工作,并對產(chǎn)品或項目有自己的想法與理解”。
強烈推薦:《Javascript DOM高級程序設(shè)計》
理由:此書灰常犀利,本人一共看了近半年的時間,已反復閱讀多次。說實話,這本書的翻譯一般,代碼也有少許錯誤,可是這不影響這本書的強大,通過學習本書,可以理解一個JS的庫如何產(chǎn)生,自己動手寫一個簡單的自己的JS庫,如果你打算研究其他的JS庫或者正在研究其他的JS庫,那么這本書會使你的理解達到新的高度,進階高級必讀,寫庫必讀。
評論:異常強大的一本JS巨作,此書不薄,強烈推薦。現(xiàn)在已經(jīng)買不到正版了,我這里有電子版,有需要的朋友留下郵箱,晚上發(fā)給你們。
強烈推薦:《Javascript設(shè)計模式》
理由:異常生猛的一本書,看書名帶“設(shè)計模式”就知道,這本書想要讀明白有點困難,本人自己感覺,只要某書一帶“模式”這兩字,反正就簡單不了。本書對JS
的“模仿接口”,“封裝”,“繼承”,“鏈式調(diào)用”,“工廠模式”等各種具體的設(shè)計模式及其在Javascript
語言中的應用進行了詳細的介紹,運用設(shè)計模式使代碼更模塊化、更高效并且更易維護。
評論:書不厚,可真的是內(nèi)容豐富且高深,強烈建議購買。
推薦:《高性能網(wǎng)站建設(shè)指南》《高性能網(wǎng)站建設(shè)進階指南》
理由:在讀完前幾本書之后我們對前端的性能和自己的代碼的效率已經(jīng)達到相當?shù)母叨攘?,然后我們在接觸一些前端工程師的一些精髓。本書對HTTP請求,CDN,內(nèi)容緩存和一些web開發(fā)中常見問題進行講解。
評論:書都不厚,可是說的都是比較實用的東西,可是用不用的上還得看個人和項目需要了。
以上就是本人一路走來看的JS相關(guān)書籍,朋友會問,為什么就只介紹的中級的,那么高級看的書在哪?有木有高級的書?進階高級程序員之路又在哪?說下我自己的看法和對年輕朋友的建議吧,說的不好或不對請原諒,其實我也才真正工作兩年多:
1.主要是工作經(jīng)驗問題。達到一定程度以后真的合適的書很難找了,更多只有在工作中總結(jié)和積累。工作的越久碰到過的問題也就越多,^_^。所以一般說高級程序員一般都是至少都3年以上的工作經(jīng)驗,沒辦法,實踐才出真理。
2.我覺得高級web前端灰常有必要總結(jié)一個自己的JS庫,不管大小,總歸有一套自己的東西(嘿嘿,如果認真的實踐過《JS
DOM高級》的內(nèi)容,估計有一套JS庫的原型了)。
3.前端有必要懂得和熟悉一本服務(wù)端語言,其實計算機語言很多語法大致都差不多,不同的就是內(nèi)置的方法和屬性,所以去熟悉一門語言并不難。為什么有必要,因為精通一門語言還是不夠的,多學一門語言的好處我就不啰嗦了,大家可以看看這篇文章
- 《門門通還是精一門》
4.
許多年輕人都有眼高手低的毛病,我也一樣,例如,有的人認為自己編起程序來很順手,不用查手冊,說寫就寫,很熟練,幾乎什么程序都能編出來,就認為自己對這種語言很精通了。其實對于一門語言的掌握程度是不可深測的,對于語言掌握其實是一個無止盡的過程,沒有終點。編寫時間的長短和編寫熟練程度,僅僅是精通語言表現(xiàn)的一個方面。更重要的是程序員要掌握這個語言的適用范圍,整體構(gòu)架,語法規(guī)則、功能分類等基礎(chǔ)理論方面的知識,并能利用這方面的知識,用最科學的方法去解決現(xiàn)實中各種項目的各個問題。