JavaScript核心技術開發解密

JavaScript核心技術開發解密

《JavaScript核心技術開發解密》 本書總結了一套適合大多數人學習JavaScript的方式,幫助讀者擁有進一步學習流行前端框架的能力。 陽波 編著 ISBN 978-7-121-33696-6 2018年3月出版 定價:69.00元 232頁 16開

編輯推薦

這是一本幫助新人提高學習效率的書;它分享了 JavaScript的核心知識鏈。

這是一本告訴讀者如何進階的書;它可以幫助讀者擁有進一步學習流行前端框架的能力,擁有在前端方向自主學習、自主進步的知識基礎與能力。

內容提要

《JavaScript核心技術開發解密》針對JavaScript 中的核心技術,結合前沿開發實踐,對JavaScript 的記憶體、函式、執行上下文、閉包、面向對象、模組等重點知識,進行系統全面的講解與分析。每一個知識點都以實際套用為依託,幫助讀者更加直觀地吸收知識點,為學習目前行業里的流行框架打下堅實基礎。本書適合JavaScript 初學者,有一定開發經驗但是對於JavaScript 了解不夠的讀者,以及開發經驗豐富但沒有形成自己知識體系的前端從業者。

目錄

1 三種基礎數據結構1

1.1 棧 1

1.2 堆 3

1.3 佇列. 4

2 記憶體空間5

2.1 基礎數據類型與變數對象. 5

2.2 引用數據類型與堆記憶體空間 . 7

2.3 記憶體空間管理 . 9

3 執行上下文11

3.1 實例1 11

3.2 實例2 15

3.3 生命周期 18

4 變數對象20

4.1 創建過程 20

4.2 實例分析 23

4.3 全局上下文的變數對象 26

目錄| vii

5 作用域與作用域鏈27

5.1 作用域 . 27

5.1.1 全局作用域27

5.1.2 函式作用域28

5.1.3 模擬塊級作用域 29

5.2 作用域鏈 31

6 閉包33

6.1 概念. 33

6.2 閉包與垃圾回收機制 . 38

6.3 閉包與作用域鏈 39

6.4 在Chrome 開發者工具中觀察函式調用棧、作用域鏈與閉包. 41

6.5 套用閉包 49

6.5.1 循環、setTimeout 與閉包. 49

6.5.2 單例模式與閉包 50

6.5.3 模組化與閉包 . 53

7 this 59

8 函式與函式式編程67

8.1 函式. 67

8.2 函式式編程. 75

8.2.1 函式是一等公民 77

8.2.2 純函式 . 80

8.2.3 高階函式 85

8.2.4 柯里化 . 91

8.2.5 代碼組合 101

viii | 目錄

9 面向對象106

9.1 基礎概念 106

9.1.1 對象的定義106

9.1.2 創建對象 107

9.1.3 構造函式與原型 108

9.1.4 更簡單的原型寫法114

9.1.5 原型鏈 . 114

9.1.6 實例方法、原型方法、靜態方法117

9.1.7 繼承118

9.1.8 屬性類型 122

9.1.9 讀取屬性的特性值127

9.2 jQuery 封裝詳解 127

9.3 封裝一個拖曳對象. 134

9.4 封裝一個選項卡 147

9.5 封裝無縫滾動 . 153

10 ES6 與模組化159

10.1 常用語法知識 . 160

10.2 模板字元串. 167

10.3 解析結構 168

10.4 展開運算符. 171

10.5 Promise 詳解173

10.5.1 異步與同步173

10.5.2 Promise. 175

10.5.3 async/await . 185

10.6 事件循環機制 . 189

10.7 對象與class . 197

10.8 模組化 . 202

10.8.1 基礎語法 204

10.8.2 實例209

前言

在閱讀這本書之前,不知道大家有沒有思考過一個問題:前端學習到底有沒有捷徑?

在我看來,學習的捷徑並不是指不用付出多少努力就能夠獲得成功,而是在我們付出努力之後,能夠感覺到自己的努力沒有白費,能夠學到更多的知識,能夠真正做到一分耕耘,一分收穫。

所以學習有沒有捷徑?我的答案是:一定有。

其實大多數人並不是不想付出努力,而是不知道如何去努力,不知道如何有效地努力。我們想要學好一個知識,想要掌握一門技術,但是往往不知從何下手。

前端的學習也是如此。也許上手簡單的HTML/CSS 知識,會給剛開始學習的讀者一個掌握起來很容易的印象。但是整個前端知識體系繁雜而龐大,導致大多數人在掌握了一些知識之後,仍然覺得自己並沒有真正入門,特別是近幾年,前端行業的從業人員所要掌握的知識越來越龐雜,入門的門檻也越來越高,甚至進階道路也變成了一場馬拉松。

也許在幾年以前,我們只需會用jQuery 就可以說自己是一名合格的前端開發者,但是現在的JavaScript 語言已經不再是幾年前那樣,只需處理一些簡單的邏輯就足夠了。隨著前後端分離的方式被越來越多的團隊運用於實踐,用戶對UI 的要求越來越高,對性能的要求也越來越高,JavaScript 承載了更多的任務。雖然前端行業大熱,但是我們的學習壓力也隨之倍增。

所以我一直在思考,在這樣的大環境背景下,對於新人朋友來說,什麼樣的學習方式能讓我們的學習效率更高?或者說,一本什麼樣的前端書籍才算是好書?

是將所有的前端知識按部就班地羅列出來告訴大家嗎?肯定不是。

很多書籍,以及各類官方文檔其實都在做這件事。但是對於多數讀者來說,把所有知識羅列出來擺在眼前,並不是一個能夠掌握它們的有效方式。這種學習方法不僅效率低下,而且學完之後,也並不知道在實踐中到底如何使用它們,我們其實是迷茫的。

所以,如果有一本書,它在努力地向讀者傳遞一種行之有效的學習方法,那么對於適合這種學習方法的讀者來說,就一定是一本好書。

這就是我們這本書努力的方向。

憑藉多年的工作經驗,在長期寫部落格並與讀者互動的過程中,我總結出了一套適合大多數人的學習方式,那就是:

圍繞核心,漸進增強。

本書將整個JavaScript 相關的知識點簡單粗暴地劃分為核心知識與周邊知識。

周邊知識的特點就是相對獨立,不用非得學會了其他的知識點之後才能掌握它,也不用掌握了它之後才能學習其他的知識。例如Ajax,如果僅僅只是想要使用它,那么用別人封裝好的方法,通過官方文檔或者搜尋引擎,只需要兩分鐘你就知道怎么使用。周邊知識不會成為我們學習的瓶頸。

而核心知識不一樣,核心知識是整個前端知識體系的骨架所在。它們前後依賴,環環相扣。

例如,在核心知識鏈中,如果你搞不清楚記憶體空間管理,你可能就不會真正明白閉包的原理,就沒辦法完全理解原型鏈,這是一個知識的遞進過程。我們在學習過程中遇到的瓶頸,往往都是由於某一個環節的核心知識沒有完整掌握造成的。而核心知識的另一個重要性就在於,它們能夠幫助我們更加輕鬆地掌握其餘的周邊知識。

所以,如果讀者知道這條核心知識鏈到底是什麼,並且徹底地掌握它們,那么你就已經具備了成為一名優秀前端程式設計師的能力。這樣的能力能夠讓你在學習其他知識點的時候方向明確,並且充滿底氣。

所以這本書的主要目的就在於幫助讀者擁有這樣的進階能力。

基於這個思路,這本書的呈現方式必定與其他圖書不同。本書不會按部就班地告訴你如何聲明變數、如何聲明函式,不會羅列出所有的基礎知識,對於基礎知識的傳授,《JavaScript 高級編程》已經做得足夠好,因此沒有必要重複做同樣的事情。我會一步一步與大家分享這條完整的核心鏈。我的期望是,當大家學完這本書中的知識後,能夠對前端開發的現狀有一個大致的了解,知道什麼知識是最有用的,什麼知識是工作中需要的,擁有進一步學習流行前端框架的能力,擁有在前端方向自主學習、自主進步的知識基礎與能力。

最後希望在這本書的陪伴下,大家能有一個愉快的、充實的學習歷程。

相關詞條

熱門詞條

聯絡我們