《JavaScript高階程式設計》紅寶書與我的JS學習之路

阿狸不歌發表於2017-08-09

JavaScript高階程式設計 封面

我的Javascript入門書是《Head First JavaScript Programming: A Brain-Friendly Guide》,看過Head First系列的都知道這個系列是IT技術入門最容易的書。當時看的是英文版,欣聞圖靈最近已經出版了其中文版《Head First JavaScript程式設計》,推薦所有零基礎想學Javascript的童鞋都讀一讀這本書,看完後入門JS絕對沒問題。

Head First JavaScript 英文版Head First JavaScript程式設計


學習過《Head First JavaScript》之後,對於閱讀JS的基礎語法應該是沒有太大問題了,但是因為《Head First JavaScript》作為一門入門型的書籍,並不會在(高階)細節上過多深入,所以當我們要進一步提升JS程式碼閱讀/編寫能力的時候,肯定會遇到讀不懂/搞不定的事情 —— 這是一件好事,這意味著我們要邁向JS高階程式設計了,而JS高程3正是這樣一本符合我們追求上進的需求的好書。本書第三章用了大約50頁的篇幅細緻的介紹了JS的基本語法,如果你哪裡忘記了就重溫一下,第四、五章又用了大約70頁的篇幅詳細介紹了變數、作用域和引用型別。如果你嫌高程3太重,也可以拿一本薄的《JavaScript語言精粹》—— 又稱蝴蝶書,只有100來頁,可以很快看完,故名“精粹 ”。蝴蝶書的作者是道格拉斯·克羅克福特(Douglas Crockford,JSON的締造者),蝴蝶書對於瞭解JS的基礎知識,比如物件,陣列,語法,作用域,閉包等等都頗有幫助,在JS的程式碼風格上也給出不少好的建議。 JavaScript語言精粹(修訂版)


進入到第六章,是物件導向的程式設計,這應該是本書的一個重點,也是每個JS寫手應該熟知的內容。本書推出之時,距ECMAscript 5.1版釋出併成為ISO國際標準也沒有多久,ECMAScript5.1裡是沒有類的概念的,因 此依據ECMAscript 5.1 的標準來寫OOP風格的程式與典型的面嚮物件語言(比如Java)有比較大的差別。通過本章,你將學到JavaScript獨特的物件導向的程式設計方式,拋棄“類”的概念和基於“類的繼承”,學習基於原型的繼承和建構函式。並且將學會如何建立物件、定義自己的型別、使用繼承以及其他各種操作來充分使用物件。本書作者 尼古拉斯.扎卡斯(Nicholas C.Zakas)可能覺得用JS寫OOP這個事情可能會對典型的Java程式設計師造成困擾,還專門寫了一本《JavaScript物件導向精要》,深入探討了原始型別和引用型別、函式、物件、建構函式和原型物件、繼承和物件模式等主題和特性,如果嫌本書寫的還不夠,可以專門閱讀扎卡斯的這本不足百頁的物件導向精要。 JavaScript物件導向精要


函式是Javascript世界的第一公民,如果說搞不清楚如何用Javascript來寫物件導向的程式還不算致命,要是搞不清楚函式表示式,那在Javascript的世界裡就基本沒法混了。Javascript函式程式設計裡,繞不過去的一個彎就是“閉包”,貌似也是很多前端面試必考的內容。本書、前面提到的蝴蝶書都對閉包做了詳細解釋。另外圖靈出的《你不知道的JavaScript(上卷)》第一部分也是專門介紹JS作用域和閉包的,可以共同借鑑參詳。你不知道的JavaScript


其實本書的英文名字是《Professional JavaScript for Web Developers》(中文版譯名省掉了 “for Web Developers”,)也就是說本書其實主要是為Web開發者準備的,從第八章開始,本書為Web開發專門準備了三分之二以上的篇幅,如果你學習Javascript是專門為了服務端開發,那麼看完第七章就可以出門右轉找《深入淺出Node.js》和《Node.js實戰》了。

作為標準的前端Javascript程式設計師,BOM和DOM、事件都是必備知識,本書用三分之一的篇幅涵蓋了BOM和DOM的方方面面。當然,本書出來的時候,一些古老版本的IE瀏覽器還佔據著統治地位,所以本書還不得不特別花了不少篇幅為IE開小灶,現在大部分前端程式設計師可能可以不那麼提醒吊膽的考慮瀏覽器的相容性問題了。關於DOM,圖靈還有一本《JavaScript DOM程式設計藝術》,翻譯質量很高,語言通俗易懂,也是適合DOM入門的佳作。 JavaScript DOM程式設計藝術


本書剩下的三分之一篇幅則包含了前端開發的其餘方方面面——HTML5、XML、JSON、Ajax、E4X、客戶端儲存等等,足以讓我們領略Web開發會遇到的知識點,這每一個知識點又可以擴充為一本書。圖靈這方面的書很多,諸如:《HTML5祕籍》、《HTML5權威指南》、《XML基礎教程》、《JSON必知必會》、《Ajax高階程式設計》、《客戶端儲存技術》等等……

HTML5祕籍HTML5權威指南JSON必知必會客戶端儲存技術


Nicholas C. Zakas在第24章介紹了Javascript程式設計的最佳實踐方法,著重於可維護性和效能。關於這兩點,尼古拉斯專門還寫了兩本書,分別是《編寫可維護的JavaScript》、《高效能JavaScript》,有興趣的童鞋可以深入鑽研。 編寫可維護的JavaScript高效能JavaScript


關於ES6/ES2015、ES2016、ES2017 ,高程3出版的時候,ES6還沒有影呢,但是近幾年來,Javascript發展可謂日新月異,本書作者尼古拉斯也沒有把讀者們落下,於2016年出版了《Understanding ECMAScript 6: The Definitive Guide for JavaScript Developers》,其中文版《深入理解ES6》也已經於近日出版發行,書中詳細講解了ES6在JavaScript物件型別、語法及其他方面激動人心的改變,是專門為熟悉JavaScript和ECMAScript 5的讀者準備的指南,幫助大家理解ECMAScript 5和6之間的差異。

深入理解ES6


最後,大家可能會關心:出了這麼多新技術,我們的JS紅寶書會不會更新啊?放心,《Professional JavaScript for Web Developers 4th Edition》已經蓄勢待發,連發售日期都已經定好了,就在2018年1月29日,讓我們好好期待吧——

  • Get up to date with ECMAScript 6 and 7
  • New frameworks, and new libraries
  • Delve into web animation, emerging APIs, and build systems
  • Test more effectively with mocks, unit tests, functional tests, and other tools Plan your builds for future ES releases

Professional JavaScript for Web Developers 4th Edition

相關文章