本書詳細介紹講述了JavaScript的基礎知識以及一些系現代語言工具和庫,例如jQuery、Underscore.js和Jasmine。主要內容包括:JavaScript基礎知識,函數、閉包和模塊,數據結構和相關處理,面向對象的JavaScript,JavaScript設計模式,測試與調試,ECMAScript 6,DOM事件和操作,服務器端JavaScript。
JavaScript是一門高級、動態、無類型、輕量的解釋型編程語言,是創造萬維網內容必不可少的技術之一。大部分網站都使用了JavaScript,而且所有的現代瀏覽器不需要插件就可以很好地支持它。但是近幾年來,JavaScript的方方面面發生了巨大的變化,而你需要適應這個JavaScript新世界。
本書是全面掌握JavaScript、構建創新型Web應用的良好伴侶。書中介紹了JavaScript的語言構件、變量作用域、循環、類型和數據結構的zui佳使用實踐、JavaScript代碼風格,以及推薦的代碼組織模式等。如果你是Web開發者,想要掌握現代JavaScript概念和設計原則,本書便是你的理想之選。
- 了解基本的JavaScript語言構件
- 熟悉JavaScript的函數與閉包
- 探究JavaScript的正則表達式
- 利用JavaScript強大的面向對象特性編程
- 使用JavaScript的策略測試及調試代碼
- 掌握DOM操作、跨瀏覽器策略以及ES6
- 理解基本的JavaScript并發構件以及zui佳的性能策略
- 學習使用Node.js構建可伸縮的服務器應用
Ved Antani
印度知名時尚電商Myntra的副總裁助理,曾就職于Electronic Arts、NetApp和Oracle。從2005年起一直在從事JavaScript、Go和Java編程,在構建可伸縮系統和移動應用開發方面有著豐富的經驗。
第1 章 JavaScript 入門 1
1.1 JavaScript 極簡史 2
1.2 如何閱讀本書 2
1.3 Hello World 4
1.3.1 JavaScript 概覽 5
1.3.2 JavaScript 類型 21
1.3.3 自動插入分號 23
1.3.4 JavaScript 代碼風格指南 25
1.4 小結 33
第2 章 函數、閉包與模塊 34
2.1 函數的字面形式 34
2.2 函數作為數據 36
2.3 作用域 38
2.3.1 全局作用域 38
2.3.2 局部作用域 39
2.3.3 函數作用域與塊作用域 39
2.3.4 行內函數表達式 42
2.3.5 塊作用域 42
2.4 函數聲明與函數表達式 44
2.5 arguments 參數 45
2.6 匿名函數 48
2.6.1 對象創建過程中的匿名函數 48
2.6.2 列表創建過程中的匿名函數 49
2.6.3 作為函數參數的匿名函數 49
2.6.4 出現在條件邏輯中的匿名函數 49
2.7 閉包 50
2.8 計時器和回調函數 52
2.9 私有變量 53
2.10 循環與閉包 53
2.11 模塊 54
2.12 小結 55
第3 章 數據結構及相關操作 56
3.1 正則表達式 56
3.2 嚴格匹配 57
3.3 匹配字符組 58
3.4 重復出現 61
3.5 首部與尾部 63
3.6 向后引用 63
3.7 貪婪限定符與惰性限定符 64
3.8 數組 65
3.9 map 71
3.10 set 72
3.11 編碼風格 73
3.12 小結 74
第4 章 面向對象的JavaScript 75
4.1 理解對象 75
4.1.1 JavaScript 對象的行為 77
4.1.2 原型 78
4.2 實例屬性與原型屬性 79
4.3 繼承 83
4.4 接收器與設置器 89
4.5 小結 91
第5 章 JavaScript 模式 92
5.1 設計模式 92
5.2 命名空間模式 94
5.3 模塊模式 95
5.4 工廠模式 100
5.5 mixin 模式 101
5.6 裝飾器模式 102
5.7 觀察者模式 104
5.8 JavaScript 的Model-View-*模式 106
5.8.1 模型 視圖 控制器 106
5.8.2 模型 106
5.8.3 視圖 107
5.8.4 控制器 107
5.9 模型 視圖 表現器 107
5.10 模型 視圖 視圖模型 108
5.11 小結 109
第6 章 測試與調試 110
6.1 單元測試 111
6.1.1 測試驅動開發 111
6.1.2 行為驅動開發 112
6.2 JavaScript 調試 117
6.2.1 語法錯誤 117
6.2.2 使用嚴格模式 117
6.2.3 運行時異常 118
6.3 小結 123
第7 章 ECMAScript 6 124
7.1 shim/polyfill 124
7.2 轉換編譯器 125
7.3 ES6 語法上的變化 125
7.3.1 塊級作用域 125
7.3.2 默認參數 127
7.3.3 spread 與rest 127
7.3.4 解構 128
7.3.5 對象字面量 129
7.3.6 模板字面量 130
7.3.7 Map 與Set 131
7.3.8 Symbol 133
7.3.9 迭代器 134
7.3.10 for of 循環 134
7.3.11 箭頭函數 134
7.4 小結 137
第8 章 DOM 操作與事件 138
8.1 DOM 138
8.1.1 訪問DOM 元素 138
8.1.2 訪問特定的節點 140
8.2 鏈式方法 145
8.3 遍歷與操作 146
8.4 處理瀏覽器事件 147
8.5 事件傳播 148
8.6 jQuery 事件處理及傳播 149
8.7 事件委托 151
8.8 事件對象 152
8.9 小結 153
第9 章 服務器端JavaScript 154
9.1 瀏覽器的異步事件模型 154
9.2 回調函數 158
9.3 計時器 160
9.4 EventEmitter 161
9.5 模塊 162
9.6 npm 165
9.7 JavaScript 性能 166
9.8 小結 169