JavaScript 完全手冊(2018版)
小編推薦: ofollow,noindex">掘金是一個面向程式員的高質量技術社群,從 一線大廠經驗分享到前端開發最佳實踐,無論是入門還是進階,來掘金你不會錯過前端開發的任何一個技術乾貨。
前言
JavaScript 是世界上最流行的程式語言之一,現在也廣泛用於除了瀏覽器之外的其他地方。 比如 Node.js 在過去幾年中的崛起,打破了後端開發語言領域 – 這曾經是 Java,Ruby,Python,PHP和傳統的伺服器端語言的天下。
JavaScript 手冊遵循 2/8 原則:在 20% 的時間內學習 80% 的 JavaScript。
本手冊旨在讓你瞭解有關 JavaScript 的所有知識!
目錄(持續更新中…)
- ECMASCRIPT
- ES2016 翻譯中…
- PROTOTYPAL INHERITANCE翻譯中…
- ASYNCHRONOUS PROGRAMMING AND CALLBACKS翻譯中…
- IMMEDIATELY-INVOKED FUNCTION EXPRESSIONS (IIFE)翻譯中…
JavaScript 介紹
JavaScript 是世界上最流行的程式語言之一。釋出於 20 年前,自從它釋出以來,它已經走了很長的路。
它是第一個也是唯一一個由 Web 瀏覽器本地支援的指令碼語言,它只是卡住了。
在一開始,它並沒有像現在這樣強大,它主要用於花哨的動畫和當時稱為動態 HTML( DHTML )的特效。
隨著 Web 平臺需求的不斷增長,JavaScript 也開始不斷的發展,以滿足世界上最廣泛使用的生態系統之一的需求。
Web 平臺中引入了很多東西,包括瀏覽器 API ,但語言本身也增加了不少新特效。
JavaScript 現在也廣泛用於瀏覽器之外。 Node.js 在過去幾年中的崛起開啟了後端開發的歷程,曾經是 Java,Ruby,Python,PHP 和更傳統的伺服器端語言領域。
JavaScript 現在也是支援資料庫和更多應用程式的語言。它甚至可以開發嵌入式應用程式,移動應用程式,電視機應用程式等等。最初作為瀏覽器內部的一種小語言,現在是世界上最流行的語言。
JavaScript 的基本定義
JavaScript 是一種程式語言,它是:
- 高階語言 :提供的抽象,允許您忽略執行它的機器的詳細資訊。它使用垃圾收集器自動管理記憶體,因此您可以專注於程式碼,而不是管理記憶體位置,並且提供了許多結構,允許您處理功能強大的變數和物件。
- 動態語言 :與靜態程式語言相反,動態語言在執行時執行許多靜態語言在編譯時執行的操作。 這有利有弊,它為我們提供了強大的功能,如動態型別,後期繫結,反射,函數語言程式設計,物件執行時更改,閉包等等。
- 動態型別 :變數不強制執行型別。 您可以將任何型別的值重新分配給變數,例如將整數分配給包含字串的變數。
- 弱型別 :與強型別相反,弱(或鬆散)型別的語言不強制執行物件的型別。這允許更多的靈活性,但是又將型別安全和型別檢查拒之門外。(這也正是 TypeScript 和 Flow 正在改進的地方)
- 解釋型 :它通常被稱為解釋型語言,這意味著它在程式執行之前不需要編譯階段,這和 C , Java 或 Go 語言不同。實際上,出於效能原因,瀏覽器在執行之前會編譯 JavaScript ,但這對您來說是不可感知的,因為不涉及額外的步驟。
- 多正規化 :該語言不強制執行任何特定的程式設計範例,不像 Java 那樣強制使用面向物件程式設計,或者像 C 那樣強制指令式程式設計。您可以使用面向物件的範例編寫 JavaScript ,使用原型和新的(從ES6開始)類(classes)語法。您可以使用函數語言程式設計風格編寫 JavaScript ,使用其一等函式,甚至以命令式(C-like)編寫。
如果您想知道,JavaScript 與 Java 到底有沒有關係,那麼我告訴你,他們的關係就像我們平常說的,雷鋒和雷峰塔的關係。這是一個不幸的名稱選擇,但我們必須忍受它。
JavaScript 版本
我在這裡介紹術語 ECMAScript。 我們有一個專門針對 ECMAScript 的完整指南,您可以在其中深入瞭解它,但首先,您只需要知道ECMAScript(也稱為 ES )是 JavaScript 標準的名稱。
JavaScript 是該標準的實現。 這就是為什麼你會聽說 ES6,ES2015,ES2016,ES2017,ES2018等等。
很長一段時間裡,所有瀏覽器執行的 JavaScript 版本都是 ECMAScript 3 。版本 4 由於功能實現緩慢而被取消了(他們試圖一次性新增太多東西)。 雖然 ES5 是 JavaScript 的一個巨大改進的版本,但 ES2015(也稱為 ES6 )給我們帶來了更多的驚喜。
從那時起,TC39 決定每年釋出一個版本,以避免在版本之間閒置太多,並且反饋迴圈更快。 (愚人碼頭注:關於 TC39 的工作流程可以檢視 《 TC39 處理 ECMAScript 新特性的工作流程 》)
目前,最新批准的 JavaScript 版本是 ES2017 (也稱為 ES8 )。 (愚人碼頭注:快速瞭解最新版本的JavaScript,也可以閱讀《 探索 ES2016 與 ES2017 》這本 JavaScript 新書)
注:本手冊翻譯自 《 The Complete JavaScript Handbook 》