1. 程式人生 > >《JavaScript推薦書籍pdf電子版附下載連結》從入門到中級看完去BAT基本無問題

《JavaScript推薦書籍pdf電子版附下載連結》從入門到中級看完去BAT基本無問題

      前言:其實我覺得JavaScript是比較難學的了,你知道基本的語法,但是當你自己去寫的時候,寫不出什麼了,所以我今天在這推薦幾本書給大家。 只要大家有耐心去照書上的例子去做,去改,我相信會有較大進步的。

     透露一下,剛剛收到了AT和美團的前端Offer~~

       WEB前端研發工程師,在國內算是一個朝陽職業,這個領域沒有學校的正規教育,大多數人都是靠自己自學成才。本文主要介紹自己從事web開發以來(從大二至今)看過的書籍和自己的成長過程,目的是給想了解 JavaScript或者是剛接觸JavaScript的朋友,介紹如何通過循序漸進的看書來學習javascript。

     話不多說,先放資源圖:

一. 入門級 :

就是有一定的基礎(比如最常見的HTML標籤及其屬性、事件、方法;最常見的CSS屬性;基礎的JavaScript程式設計能力),能夠完成一些簡單的WEB前端需求。

1.推薦:《JavaScript Dom程式設計藝術》

理由:此書絕對是入門的好書,本人也是在接觸JS一段時間後才看的這本書。此書從JS的歷史 – JS基礎語法知識 – DOM介紹和簡單的使用。現在這本書已經出了第二版,需要的朋友直接第二版就行。 評價:簡潔,實用,詳細,易懂,書不厚,相信很快就能看完。 算是很好的經典入門書了,貫穿一個例項,把JavaScript的優點表現的淋漓盡致,非常強大。

2.推薦:《JavaScript權威指南(第5版)》

理由:非常強大(這名字可不是白起),其實說起來也慚愧,本人至今都沒有買過這本書,最開始是因為 這個書實在是小貴,只好借朋友的看,不過也就看了個週末。網上關於此書的評價很多,意思大概都是說這書就是一個JS的文件手冊,如果你有閒錢,並且習慣翻 書查詢,那麼就來一本吧。順便提醒一句,這本書的第六版英文版已經出來了。

二.初級開發:

本人以前的DEV leader兼恩師這麼說過:“初級開發人員的標誌就是需要在中級和高階開發的指導下完成工作”。首先不要苛責程式碼的對錯嚴謹,畢竟每個程式設計師都有這樣的一個過程,就是這個級別的特徵。

1.推薦:《JavaScript高階程式設計》(第三版)

理由:這本書的作者是 Nicholas C.Zakas ,部落格地址是 http://www.nczonline.net/ ,大家可以去多關注,雅虎的前端工程師,是YUI的程式碼貢獻者,可想而知這本書得含金量,他出的書都廣受好評。這本書已經出了第二版,而且與第一版相比內 容更新很大,直接第二版就行。不要被書名的“高階”唬住,只要有JS基礎語法知識和DOM基礎知識就行,而且本書開始階段還是介紹JS和DOM的語法知 識。有一定JavaScript的基礎可以看看,不過沒基礎也可以看看,wrox經典書籍。

評論:重點推薦一下第五章(型別),第六章(OOP),第七章(匿名),多看幾遍,至少要完全看明白,能為以後進階打好基礎,個人感覺這幾章是本書的 精華所在。這本書在入門的時候看節奏會快了一些,所以不建議初學者看,可是相對於我一會要介紹的書又算基礎一點,所以建議先閱讀完這本書,對瀏覽器相容和 語法知識有一定了解之後再往下閱讀。

2.推薦:《高效能JavaScript》《JavaScript語言精髓與程式設計實踐》

理由:本人先看的是《高效能JS》,這本書還是 Nicholas C.Zakas 所著,經典之作,書中大量舉例了各種不同寫法的JavaScript在瀏覽器中的效能情況,對規範JavaScript程式碼和提升效能有很好的幫助,最後 提到了很多工具和效能測試的方法,都是灰常灰常有實際作用的,看得出作者很厚道(好吧,偶承認了,偶是他的粉絲)^_^,記憶最深的一句話:”如果 JavaScript 執行了幾秒鐘,那麼很可能是你做錯了什麼”;《語言精髓》和《高效能》有少部分關鍵知識都重複提到了,可是為什麼要推薦這本書,因為本書對JS語言本質的描述太棒了,這是一本介紹 JavaScript語言本質的權威書籍,從 “物件”,“函式”,“繼承”,“陣列”等等多個重要知識著手。我補一句話 – 本書需要反覆閱讀。 評論:都是好書,都很薄,而且所說的內容只要有基礎都不難。相信讀完之後會對JS又有新的認識,且對以後的程式碼規範和瀏覽器差異性等高階問題有了新的認識,如果讀完之後會有種被灌頂的感覺,那麼恭喜你,你離中級不遠了。作為Orelly唯一一本我確實認可的javascript相關的書。

他摒棄了Orelly系列所有我不喜歡的特點:

老外的聊天說教式閱讀體驗,樣例不夠豐富,排版單一,破事水等。

他的優點如下:

1. 情景豐富,基本涉及所有js效能優化的場景。還會給出不同場景的實際測試資料,真實可信。我們在閱讀這些場景例項的同時也豐富了自己js的使用經驗。

2. 給出了很多看似"旁門左道"的解決方案,而這些冷門的解決方案恰恰是有些人死活百度不到的真正能解決問題的最優解。

3. 在說問題的同時說原理,深入淺出,遊刃有餘。所以這本書不僅僅是一本介紹js效能相關的書,而是一本涉及瀏覽器原理,js解析原理,使用者體驗等知識的javascript最佳註解。

閱讀建議:

建議和高程三一起看,可以算是高程三閱讀的最佳伴侶。

高程三告訴你“他叫什麼,他什麼樣”,

這本書就告訴你“他為什麼”,“他該怎樣”。

所以,當別人還在為某些問題絞盡腦汁的時候,你已經從起點上幹翻他們了。

3.推薦:《深入淺出JavaScript》

理由:Ajax程式設計師必備 裡面講自己開發的一個JavaScript框架。

4. 推薦《學習Javascript資料結構與演算法》

理由:這本書相對是一本冷門書。

為什麼我會推薦他,是因為他能解決每個半路出家的js程式設計師都曾思考過的一些問題:

1. 我們的陣列Array這麼強大,要棧Stack,佇列Queue這些功能少,半半拉拉的東西幹什麼呢?

2. 我們學的資料結構搞來搞去好像也就那些玩意,為什麼被大家這麼推崇,還要分門別類討論呢?

所以這本書只是為何告訴你上面這些問題的答案:

1. 棧和佇列本來就沒有Array功能強。沒有Stack和Queue類只是因為ES5不去實現它而已。作為一種相互之間存在一種或多種特定關係的資料集合,其存在意義是不應該被其功能強大與否來決定的。

2. 資料結構和程式語言無關。語言死了,他們會在下一門語言裡重生。哪怕計算機死了,他們都會在下一個概念體裡重生。

閱讀建議:

跟著書本把這裡面的結構全部敲一遍,快的話一天就能搞定。

從此你便再不怕懼怕js相關的簡單資料結構問題。

但是,遇上高階的樹,圖等問題該跪還是要跪。因為這本書虎頭蛇尾,後面的高階點的資料結構介紹的不夠深。

適合經常反思“它從哪裡來,要到哪裡去?”的js程式設計師,或後悔以前資料結構沒好好學的前端同學。

三.中級開發:

還是本人以前的DEV leader兼恩師這麼說過:“中級開發人員的標誌就是在高階開發或架構師較少的指導下高質量的完成工作,並對產品或專案有自己的想法與理解”。

1.強烈推薦:《JavaScript DOM高階程式設計》

理由:此書灰常犀利,本人一共看了近半年的時間,已反覆閱讀多次。說實話,這本書的翻譯一般,程式碼也有少許錯誤,可是這不影響這本書的強大,通過學習 本書,可以理解一個JS的庫如何產生,自己動手寫一個簡單的自己的JS庫,如果你打算研究其他的JS庫或者正在研究其他的JS庫,那麼這本書會使你的理解 達到新的高度,進階高階必讀,寫庫必讀。 評論:異常強大的一本JS鉅作,此書不薄,強烈推薦。現在已經買不到正版了,我這裡有電子版,有需要的朋友留下郵箱,晚上發給你們。

2.強烈推薦:《JavaScript設計模式與開發實踐》

理由:

我認為騰訊AlloyTeam的這本書對我幫助媲美高程三。

那時候我恰好換公司,從原來的開發方式切換成另一種完全不同的開發方式,讓我很不適應。

這本書及時的蹦出來,他拿實際的應用場景舉例,告訴你不同js專案裡如何共通設計模式,還極其詳細的介紹了函式的高階用法,能讓你對js高階函式的認知上升一個臺階。

難能可貴的是他還拿java作為靜態語言的類比。從語言統一高度來給你分析這些問題。

和上本介紹資料結構的書一樣,這本書有的放矢,能完美的解決對js設計模式有疑問的同學的實際問題。

他比上本書更深刻,更易讀,也更貼近實踐。

評論:書不厚,可真的是內容豐富且高深,強烈建議購買。

閱讀建議:

這是本適合反覆閱讀的書籍。

如果你的思路能根據應用場景自動切換到最適合的設計模式,說明你已吃透這本書了。

3.推薦:《高效能網站建設指南》《高效能網站建設進階指南》

理由:在讀完前幾本書之後我們對前端的效能和自己的程式碼的效率已經達到相當的高度了,然後我們在接觸一些前端工程師的一些精髓。本書對HTTP請求,CDN,內容快取和一些web開發中常見問題進行講解。 評論:書都不厚,可是說的都是比較實用的東西,可是用不用的上還得看個人和專案需要了。

4.推薦:《精通JavaScript》

理由:把JavaScript講得很面向物件。很現代! 圖靈教育的出版引進書籍有很多都是經典書籍,非常好,建議大家有時間就去www.turingbook.com看看。 

5. 推薦:《你不知道的JavaScript》

大名鼎鼎的Github開源的書籍。

為了他的名氣我也得買一本實體書來拜讀下。

這本是上卷,只涉及作用域和閉包,this和物件原型兩部分。

不過其深入程度是其他js書籍難以企及的。

可以說,這已經是大部分前端程式設計師對js語法可以深入瞭解的最底層了,再往下就直面編譯原理了。

閱讀建議:

用於提升自己的js語法的理解等級。

對於進入工作第二年的想深入理解js語法的同學來說特別有效。

書單彙總:

入門:

1.《JavaScript Dom程式設計藝術》

2.《JavaScript權威指南(第5版)》

初級:

1.《JavaScript高階程式設計》(第三版)

2.《高效能JavaScript》《JavaScript語言精髓與程式設計實踐》

3.《深入淺出JavaScript》

4. 《學習Javascript資料結構與演算法》

中級:

1.《JavaScript DOM高階程式設計》

2.《JavaScript設計模式與開發實踐》

3.《高效能網站建設指南》《高效能網站建設進階指南》

4.《精通JavaScript》

5. 《你不知道的JavaScript》(偏高階)(上中下完整版)

總結一下:

以上就是本人一路走來看的JS相關書籍,朋友會問,為什麼就只介紹的中級的,那麼高階看的書在哪?有木有高階的書?進階高階程式設計師之路又在哪?說下我自己的看法和對年輕朋友的建議吧,說的不好或不對請原諒。

其實我也才真正工作兩年多:

1. 主要是工作經驗問題。達到一定程度以後真的合適的書很難找了,更多隻有在工作中總結和積累。工作的越久碰到過的問題也就越多,^_^。所以一般說高階程式設計師一般都是至少都3年以上的工作經驗,沒辦法,實踐才出真理。

2. 我覺得高階web前端灰常有必要總結一個自己的JS庫,不管大小,總歸有一套自己的東西(嘿嘿,如果認真的實踐過《JS DOM高階》的內容,估計有一套JS庫的原型了)。

3. 前端有必要懂得和熟悉一本服務端語言,其實計算機語言很多語法大致都差不多,不同的就是內建的方法和屬性,所以去熟悉一門語言並不難。為什麼 有必要,因為精通一門語言還是不夠的,多學一門語言的好處我就不囉嗦了,大家可以看看這篇文章 – 《門門通還是精一門》

4. 許多年輕人都有眼高手低的毛病,我也一樣,例如,有的人認為自己編起程式來很順手,不用查手冊,說寫就寫,很熟練,幾乎什麼程式都能編出來, 就認為自己對這種語言很精通了。其實對於一門語言的掌握程度是不可深測的,對於語言掌握其實是一個無止盡的過程,沒有終點。編寫時間的長短和編寫熟練程 度,僅僅是精通語言表現的一個方面。更重要的是程式設計師要掌握這個語言的適用範圍,整體構架,語法規則、功能分類等基礎理論方面的知識,並能利用這方面的知 識,用最科學的方法去解決現實中各種專案的各個問題。