號外號外,由 JS 之父與 ES6 首席做者聯合出品的前端鍵政必讀書《JavaScript 20 年》,歷時半年終於完成了中文翻譯的在線版!javascript
本書又名《沒人比咱們更懂的 JavaScript》和《TC39 執政回憶錄》,詳細記載和解讀了自 1995 年語言誕生到 2015 年 ES6 規範制定爲止,共計 20 年的 JavaScript 演化經歷。全書不只講解了大量語言細節層面的演進,更復盤了更高層面上規範制定與標準博弈中的歷史成敗,是一部講述人類如何在商業與技術上的競爭合做中促進產業發展的故事。html
那麼,在線版比以前連載的專欄文章多了些什麼呢?其實還真很多:前端
通過這些完善,在線版的篇幅已經達到了 25 萬字的水平。下面簡單分享下這些更新裏有趣的料吧:java
相比以前的專欄連載版本,在線版的正文中加入了大量連接,其結構與原文保持了一致。它們能給你一種「很專業」的感受。好比下面這段話:node
TC39 [Herman 2008] 同時也對提供具備精簡語義的「lambda 函數」感興趣,好比支持消棧的尾調用g和 Tennent [1981] 一致性原則99。其支持者們認爲,這樣的函數將會在實現由語言或庫所定義的控制抽象時有所用處。在 Harmony 進程早期,Brendan Eich [2008a] 在
es-discuss
上的一篇討論貼中, 提出了一個最初由 Allen Wirfs-Brook 所提出的建議,即基於 Smalltalk 塊語法的啓發,採用一種簡潔的 lambda 函數語法。例如{|a,b| a+b}
就至關於 Herman 的lambda(a,b){a+b}
。Eich 的帖子引起了一場大規模但沒有結論的線上討論,話題涉及與(某種可能的)簡明函數特性所相關的方方面面。做爲關鍵總結,能夠認爲其中許多語法的靈感會帶來解析或可用性上的問題,並且 JavaScript 的非本地控制轉移語句——return
、break
和continue
——會顯著地使編寫控制抽象的機制變得更加複雜。大多數 TC39 成員和es-discuss
訂閱者彷佛主要對簡潔的函數語法更感興趣,而非對 Tennent 一致性感興趣。git
加入並校正這些連接,主要是件體力活。其要點大概有這麼幾個:github
這條記載 JavaScript 演化的時間線,對應原文的附錄 E,是一份事無鉅細的表格,像這樣:ajax
這裏咱們能夠直觀地看到,許多影響 JavaScript 和 Web 發展的歷史事件是如何交織在一塊兒的。好比從上圖中咱們就能發現,Brendan Eich 纔剛把 demo 級的 JavaScript 原型寫出來三個月(1.0 都還沒發佈),他供職的 Netscape 就高歌猛進地上市了。再好比咱們也能夠找到 Chrome V8 發佈後,各大主流瀏覽器花了多少時間跟進這項「性能革命」。數據庫
你知道 JavaScript 當年是如何正式發佈的嗎?咱們搬運回了附錄 F 中這份當年 Netscape 和 Sun 聯合發佈的新聞稿,其中天然不乏亮點:編程
有了 JavaScript,就有可能在 HTML 頁面中加入智能的表單。它能夠根據用戶的輸入,在客戶端執行貸款支付或貨幣兌換等計算。而某個用 Java 編寫的多媒體天氣預報 applet 小應用,也能夠經過 JavaScript 腳本,根據某地區當前的天氣讀數來顯示適當的圖像和聲音。服務端的 JavaScript 腳本能夠作到從關係型數據庫中提取數據,並飛快地將其格式化爲 HTML。在頁面中,還可能包含有在客戶端和服務器上都可運行的 JavaScript 腳本。在服務器上,腳本能夠根據存儲在關係型數據庫中的用戶偏好,來動態地組合與格式化出 HTML 內容;在客戶端上,腳本能將各類 Java applet 小應用和 HTML 表格元素粘合在一塊兒,造成一個可實時交互的用戶界面,以進行全網範圍內的信息搜索……
它都預言了些什麼呢?這說的不像是今天咱們還在作的表單嗎?不像是 Node.js 嗎?不像是服務端渲染的 SSR 嗎?不像是 JS 控制 Java 原生組件的 RN 嗎?你看 Netscape 在 25 年前吹的牛逼,整個社區到了 2020 年的今天,竟然也算把它們給實現得八九不離十(強行)。除此以外,附錄資料中還藏着更多的細節,等待着你的發掘。
咱們申請到了 cn.history.js.org 這個漂亮的域名,另外你也能夠訪問 jshistory-cn 這個 GitHub 項目主頁,二者的閱讀體驗基本是一致的。
在線版使用 GitHub Pages 部署。若是你因爲某些緣由沒法正常解析域名,在 hosts 中配置
185.199.108.153 cn.history.js.org
便可(這其實是對github.io
的解析問題,參考 GitHub 官方指南)。
另外,因爲新增了大量不便於同步的細節格式優化,最先的知乎專欄連載文章將再也不繼續維護,它們的文中也已添加了相應的 deprecated warning。
最後,這裏還準備了一份目錄可供直達:
歡迎閱讀與指正!
(題圖:原書的兩位做者 Brendan Eich 與 Allen Wirfs-Brock,2011 年)
咱們正在與博文視點的 @張春雨 老師積極合做,準備推出本書的紙質版。期待你的關注和支持噢!