學習JavaScript必讀的12本書
我巨喜歡讀有關JavaScript的書。在學習JS的很長一段時間里,我讀了特別多市面上廣受歡迎的JavaScript書籍。最近我不再讀一些寫給菜鳥的書了,但我仍然會翻閱許多寫給初階JS開發者的書。
其實目前是個非常尷尬的時間段,因為ES6的推出,JS在語法上與以往有了很大的改變,而很大一部分書的內容還停留在ES3-ES5的階段。不過好在ES6僅是ES5的一個超集而已,大多數的經典書目對學習JS還是很有幫助的。
換句話講,這些經典書目并沒有過時,只是附加了一份歷史感。對于剛剛接觸JS的同學來講,閱讀這些書籍的同時也能領略一番JS的歷史。
一些JS社區的作者已經開始撰寫教你ES6的書了。不過我還是建議你在閱讀這些書籍之前先掌握一些JS的基礎。要是你看到這兒還不知道我說的ES6是什么的話,請戳ECMA Script 6 入門 。
下面的推薦列表基本是按照循序漸進的學習順序排列的:
書目推薦:
1. 趣學JavaScript:教孩子學編程 by Nick Morgan
JavaScript是Internet的語言,是創建令人驚訝的Web、你喜歡的站點交互和在線游戲的秘密武器。 《趣學JavaScript 教孩子學編程》用輕松愉快的方式,通過耐心的、按部就班的示例,以及充滿樂趣的圖示,幫助讀者輕松地學習編程基礎知識。全書共16章,從基礎知識開始,詳細介紹了操作字符串、數組以及循環,然后繼續學習一些高級話題,如使用jQuery構建交互性,以及使用畫布繪圖等。本書通過教授編寫一些簡單有趣的游戲,幫助讀者掌握JavaScript編程。每一章都構建于上一章的基礎之上,并且每章末尾的編程挑戰能夠激發讀者更多的思考和學習興趣。 《趣學JavaScript 教孩子學編程》針對任何想要學習JavaScript或初次接觸編程的人。本書針對兒童學習JavaScript量身定做,但也適合作為不同年齡的初學者的第1本編程圖書。 豆瓣鏈接
2. JavaScript編程精解 by Marijn Haverbeke
如果你只想閱讀一本關于JavaScript的圖書,那么本書應該是你的首選。本書由世界級JavaScript程序員撰寫,JavaScript之父和多位JavaScript專家鼎力推薦。本書適合作為系統學習JavaScript的參考書,它在寫作思路上幾乎與現有的所有同類書都不同,打破常規,將編程原理與運用規則完美地結合在一起,而且將所有知識點與一個又一個經典的編程故事融合在一起,讀者可以在輕松的游戲式開發中學會JavaScript程序設計,趣味性十足,可操作性極強。 全書一共12章:第1~3章介紹了JavaScript的基本語法,旨在幫助讀者編寫出正確的JavaScript程序,包含數字、算術、字符串、變量、程序結構、控制流程、類型、函數、對象和數組等最基礎和最核心的內容;第4~7章講解了JavaScript編程中的高級技術,目的是幫助讀者編寫更復雜的JavaScript程序,主要涉及錯誤處理、函數式編程、面向對象編程、模塊化等重要內容;第8~12章則將重心轉移到JavaScript環境中可用的工具上,分別詳細講解了正則表達式、與Web編程相關的知識、文檔對象模型、瀏覽器事件和HTTP請求等。 豆瓣鏈接
3. JavaScript語言精粹 by Douglas Crockford
JavaScript 曾是“世界上最被誤解的語言”,因為它擔負太多的特性,包括糟糕的交互和失敗的設計,但隨著Ajax 的到來,JavaScript“從最受誤解的編程語言演變為最流行的語言”,這除了幸運之外,也證明了它其實是一門優秀的語言。Douglas Crockford 在本書中剝開了JavaScript 沾污的外衣,抽離出一個具有更好可靠性、可讀性和可維護性的JavaScript 子集,讓你看到一門優雅的、輕量級的和非常富有表現力的語言。作者從語法、對象、函數、繼承、數組、正則表達式、方法、樣式和優美的特性這9 個方面來呈現這門語言真正的精華部分,通過它們完全可以構建出優雅高效的代碼。作者還通過附錄列出了這門語言的毒瘤和糟粕部分,且告訴你如何避免它們。最后還介紹了JSLint,通過它的檢驗,能有效地保障我們的代碼品質。 這是一本介紹 JavaScript 語言本質的權威書籍,值得任何正在或準備從事JavaScript 開發的人閱讀,并且需要反復閱讀。學習、理解、實踐大師的思想,我們才可能站在巨人的肩上,才有機會超越大師,這本書就是開始。 豆瓣鏈接
4. Programming JavaScript Applications: Robust Web Architecture with Node, HTML5, and Moderns JS Libraries by Eric Elliott (原作者本人)
在我剛開始招聘JS開發者開發應用的時候,我發現許多人根本不知道怎么駕馭JS來構建健壯的應用架構。所以我就決定寫一本有關JS最佳實踐、原型、對象聚合,和一些基本的函數式編程概念(這些知識足夠你了解如何開發維護一個典型的JS應用),然后講解了如何運用上述的知識解決大多數應用中都會出現的一些通共性問題。
很多書都在回答“如何使用JS?”的問題,而我在這本書中要回答的是“如何用JS來開發真正的應用?”
雖然近兩年內技術發展迅猛,但客觀來講,這本書依舊能夠帶給你一個有關JS應用架構的完整而直觀的概念。同時也能加深你對JS的理解,學習基礎的Node,RESTful API,權限和驗證,功能切換系統,日志記錄等等…… 豆瓣鏈接
5. Effective JavaScript : 編寫高質量JavaScript代碼的68個有效方法 by David Herman
《Effective JavaScript:編寫高質量JavaScript代碼的68個有效方法》內容簡介:Effective系列叢書經典著作,亞馬遜五星級暢銷書,Ecma的JavaScript標準化委員會著名專家撰寫,JavaScript語言之父、Mozilla CTO Brendan Eich作序鼎力推薦!作者憑借多年標準化委員會工作和實踐經驗,深刻辨析JavaScript的內部運作機制、特性、陷阱和編程最佳實踐,將它們高度濃縮為極具實踐指導意義的68條精華建議。 《Effective JavaScript:編寫高質量JavaScript代碼的68個有效方法》共分為7章,分別涵蓋JavaScript的不同主題。第1章主要講述最基本的主題,如版本、類型轉換要點、運算符注意事項和分號局限等。第2章主要講解變量作用域,介紹此方面的一些基本概念,以及一些最佳實踐經驗。第3章主要講解函數的使用,深刻解析函數、方法和類,并教會讀者在不同的環境下高效使用函數。第4章主要講解原型和對象,分析JavaScript的繼承機制以及原型和對象使用的最佳實踐和原則。第5章主要介紹數組和字典,闡述將對象作為集合的用法以及使用數組和字典的一些陷阱。第6章介紹庫和API,講解如何設計良好的API的技巧,以清楚、簡潔和明確地表達程序,并提高可重用率。第7章講解并發,在技術上討論一些“約定成俗”的JavaScript用法。 豆瓣鏈接
6. JavaScript權威指南 by David Flanagan
這就是JS程序員的《圣經》。
《JavaScript權威指南(第6版)》講述的內容涵蓋JavaScript語言本身,以及Web瀏覽器所實現的JavaScriptAPI。本書涵蓋了HTML5和ECMAScript5,很多章節完全重寫,增加了當今Web開發的實踐內容,新增的章節包括jQuery、服務器端JavaScript、圖形編程以及JavaScript式的面向對象。本書不僅適合初學者系統學習,也適合有經驗的JavaScript開發者隨手翻閱。 豆瓣鏈接
7. 你不知道的JavaScript by Kyle Simpson
很多人對JavaScript這門語言的印象都是簡單易學,很容易上手。雖然JavaScript語言本身有很多復雜的概念,但語言的使用者不必深入理解這些概念就可以編寫出功能全面的應用。殊不知,這些復雜精妙的概念才是語言的精髓,即使是經驗豐富的JavaScript開發人員,如果沒有認真學習的話也無法真正理解它們。在本書中,我們要直面當前JavaScript開發者“不求甚解”的大趨勢,深入理解語言內部的機制。 《你不知道的JavaScript(上卷)》既適合JavaScript語言初學者閱讀,又適合經驗豐富的JavaScript開發人員深入學習。
你不知道的JavaScript是一套系列叢書,中文版目前只出版了上卷和中卷,這里給出的鏈接是上卷,如果你對這套叢書感興趣,可以在 Github 上找到原版全集。 豆瓣鏈接
8. JavaScript Allongé: The Six Edition by Reginald Braithwaite
JavaScript Allongé 主要講解了JS的函數,以及如何運用精煉,解耦的單元構建靈活的應用。
本書會盡量不表現出先入為主和自以為是的概念,書中的介紹說:
JavaScript Allongé 并不是一本在軟件開發的廣義上介紹最佳實踐的書,不偏重實踐,而是更加偏向于思維方式。
本書當然不是一本入門書籍。Reginald 在書中通過一些簡單的例如 const 的概念深入淺出地講解了諸如IIFE(立即執行函數)和閉包一類進階的函數作用域,以及函數柯里化等內容。
大多數的入門書籍都會從變量以及如何通過var,let,const定義變量開始。而本書直接跳過了這些,為你讓你充分地調動大腦,來重新并深入地理解函數及其作用。
最好在你已經熟悉了JS,并且掌握了面向對象的編程方法之后再來閱讀本書。
9. Professor Frisby’s Mostly Adequate Guide to Functional Programming by Brian Lonsdorf
本書在Github上開源,可以免費下載,還沒寫完但值得一讀。
聰明人都知道,學習函數式編程是很困難的。我自己學了很久也只感覺掌握了皮毛而已(并且這種永遠只是略懂的感覺一直揮之不去)。幸運的是,這是一本非常好的教程。
函數式編程的概念里充滿著諸如函數演算、代數、范疇論一類的術語。這些裝逼的詞匯一下就把人給忽悠瘸了。而本書的內容卻生動而活潑。
要是所有的編程書都能像這本一樣有趣該多好。這是一本會讓你手不釋卷,樂在其中的計算機科學類書籍。
10. Node.js實戰 by by Mike Cantelon, Marc Harter, TJ Holowaychuk, and Nathan Rajlich
服務器端JavaScript?沒錯。Node.js是一個JavaScript服務器,支持可伸縮的高性能Web應用。借助異步I/O,這個服務器可以同時做很多事情,能滿足聊天、游戲和實時統計等應用的需求。并且既然是JavaScript,那你就可以全棧使用一種語言。 本書向讀者展示了如何構建產品級應用,對關鍵概念的介紹清晰明了,貼近實際的例子,涵蓋從安裝到部署的各個環節,是一部講解與實踐并重的優秀著作。通過學習本書,讀者將深入異步編程、數據存儲、輸出模板、讀寫文件系統,掌握創建TCP/IP服務器和命令行工具等非HTTP程序的技術。本書同樣非常適合熟悉Rails、Django或PHP開發的讀者閱讀學習。 本書主要內容: Node.js及其擴展的安裝配置; 全面理解異步編程和事件循環; 學會開發微博、聊天和游戲等熱門應用。 豆瓣鏈接
11. Web性能權威指南 by Ilya Grigorik
本書是谷歌公司高性能團隊核心成員的權威之作,堪稱實戰經驗與規范解讀完美結合的產物。本書目標是涵蓋Web 開發者技術體系中應該掌握的所有網絡及性能優化知識。全書以性能優化為主線,從TCP、UDP 和TLS 協議講起,解釋了如何針對這幾種協議和基礎設施來優化應用。然后深入探討了無線和移動網絡的工作機制。最后,揭示了HTTP 協議的底層細節,同時詳細介紹了HTTP 2.0、 XHR、SSE、WebSocket、WebRTC 和DataChannel 等現代瀏覽器新增的具有革命性的新能力。 本書適合所有Web 應用及站點開發人員閱讀,包括但不限于前端、后端、運維、大數據分析、 UI/UX、存儲、視頻、實時消息,以及性能工程師。 Ilya Grigorik 是谷歌“Web加速”(Make The Web Fast)團隊的性能工程師、開發大使。他每天的主要工作就是琢磨怎么讓Web應用速度更快,總結并推廣能夠提升應用性能的最佳實踐。 豆瓣鏈接
12. Web Audio API by Boris Smus
本書不在必讀書目內,完全是原作者的個人癖好
每一個真正的JS搖滾之星都需要這本書。雖然你需要其實是一把吉他。我知道我又不小心標題黨了,不過你要是喜歡玩弄音頻和音樂的話,這本書會對你很有幫助。要是你不感興趣請直接無視。
介紹這本書完全出于我個人對音樂和音頻開發的癖好。Web 音頻API是一套通過Web平臺標準來操作和生成音頻的系統。在瀏覽器和Node上都可以使用。
本書介紹的主要內容包括如何通過JS操作音頻、添加音頻特效以及音頻視覺化等。
來自:http://www.smartcitychina.cn/QianYanJiShu/2016-10/7861.html