編輯推薦
這是學習JavaScript的一個大時代。新的JavaScript標準——ECMAScript 6.0 (ES6)已經定稿,學習如何使用這種語言來開發高質量的應用程序變得前所未有的簡單和舒服。
本書將帶領程序員開啓一次充實的ES6之旅,同時也會介紹一些相關的工具和技術。本書不僅會介紹基礎知識(比如變量、控製流和數組),還會講解函數式編程和異步編程等復雜的概念。你將會學習如何在客戶端(或者在服務端使用Node.js)構建強大的響應式Web應用。
通過閱讀本書,你將學會:
■ 使用ES6編程,然後通過轉譯來兼容ES5;
■ 將數據轉換為JavaScript可以使用的格式;
■ 理解JavaScript中函數的基本用法和機製;
■ 探索對象和麵嚮對象編程;
■ 瞭解新的概念,比如迭代器、生成器和代理;
■ 理解異步編程的復雜性;
■ 利用文檔對象模型(DOM)來構建基於瀏覽器的應用;
■ 學習Node.js的基礎知識來構建服務器端應用程序。
這是開發者學習JS的一個大時代。但是我說的並不是那種‘我的代碼能跑起來’一樣的小打小鬧。這本書將帶你更深入地學習我們所需的那些知識。”
——Kyle Simpson 《你不知道的JavaScript》係列書作者
“這本書寫得很好,內容緊湊,介紹瞭JavaScript的一切,甚至包含瞭ECMAScript 6。”
——Axel Rauschmayer 《深入理解JavaScript》作者
內容簡介
JavaScript是目前Web開發領域非常流行的一種編程語言,得到眾多IT從業人員和編程愛好者的關注。
本書分為22章,在ES6的基礎上,係統地介紹瞭JavaScript的基本語法、語言特性、相關工具、基本對象、技術以及推動現代JavaScript開發的範例等方麵的知識。本書內容由淺及深,既有變量、控製流、函數等基礎內容,又有異步編程、正則錶達式等高級知識。
本書適閤具備一定JavaScript基礎知識的讀者閱讀,也適閤從事程序設計工作並想要深入探索JavaScript語言的讀者閱讀。
作者簡介
Ethan Brown是互動營銷公司Pop Art的工程總監,負責網站和網絡服務的架構和實現,麵嚮從小公司到跨國企業的多種客戶。他有著超過20年的編程經驗。
目錄
目錄
第1章 第一個應用 1
1.1 從哪裏開始 2
1.2 實用的工具 2
1.2.1 語法高亮 3
1.2.2 括號匹配 3
1.2.3 代碼摺疊 4
1.2.4 自動補全 4
1.3 關注注釋 4
1.4 從這裏開始 5
1.5 JavaScript控製颱 7
1.6 jQuery 8
1.7 繪製圖元 8
1.8 自動執行重復任務 10
1.9 處理用戶輸入 11
1.10 Hello, World 13
第2章 JavaScript開發中的常用工具 14
2.1 在當下編寫ES6代碼 14
2.2 ES6的新特性 15
2.2.1 安裝Git 16
2.2.2 終端 16
2.2.3 項目根目錄 17
2.2.4 版本控製:Git 17
2.2.5 包管理工具:npm 20
2.2.6 構建工具:Gulp和Grunt 22
2.2.7 項目結構 23
2.3 轉換器 24
2.3.1 使用Gulp運行Babel 24
2.3.2 格式審查工具 26
2.4 總結 29
第3章 字麵量、變量、常量和數據類型 32
3.1 變量和常量 32
3.2 變量和常量:用哪個 33
3.3 標識符命名 34
3.4 字麵量 35
3.5 基本類型和對象 36
3.6 數字 37
3.7 字符串 39
3.8 特殊字符 40
3.8.1 模闆字符串 41
3.8.2 多行字符串 42
3.8.3 數字用作字符串 43
3.9 布爾型 43
3.10 符號 43
3.11 null和undefined 44
3.12 對象 44
3.13 Number, String和Boolean對象 47
3.14 數組 47
3.15 對象和數組的拖尾逗號 49
3.16 日期 50
3.17 正則錶達式 50
3.18 映射和集閤 51
3.19 數據類型轉換 51
3.19.1 轉換成數字 51
3.19.2 轉換成字符串 52
3.19.3 轉換成布爾型 52
3.20 總結 53
第4章 控製流 54
4.1 控製流的底層 54
4.1.1 while循環 57
4.1.2 塊語句 58
4.1.3 空格 59
4.1.4 輔助方法 60
4.1.5 if else語句 60
4.1.6 do...while循環 62
4.1.7 for循環 63
4.1.8 if語句 64
4.1.9 最後的整閤 65
4.2 JavaScript中的控製語句 66
4.2.1 控製流異常 67
4.2.2 鏈式if… else語句 67
4.2.3 元語法 68
4.2.4 其他循環模式 69
4.2.5 switch語句 70
4.2.6 for…in循環 74
4.2.7 for…of循環 74
4.3 實用的控製流模式 74
4.3.1 使用continue減少條件嵌套 75
4.3.2 使用break或return避免不必要的計算 75
4.3.3 在循環結束後使用索引的值 76
4.3.4 列錶變動時索引遞減 76
4.4 總結 77
第5章 錶達式和運算符 78
5.1 運算符 79
5.2 算術運算符 80
5.3 運算符優先級 82
5.4 比較運算符 83
5.5 比較數字 85
5.6 字符串連接 86
5.7 邏輯運算符 87
5.8 與、或和非 88
5.8.1 短路求值 89
5.8.2 非布爾值的邏輯運算符 89
5.8.3 條件運算符 90
5.8.4 逗號運算符 91
5.9 分組運算符 91
5.9.1 位運算符 91
5.9.2 類型判斷運算符 93
5.9.3 void運算符 94
5.9.4 賦值運算符 94
5.10 解構賦值 95
5.11 對象和數組運算符 97
5.12 模闆字符串中的錶達式 97
5.13 錶達式和控製流模式 97
5.13.1 將if…else語句轉化成條件錶達式 98
5.13.2 將if語句轉化成短路求值的邏輯或(||)錶達式 98
5.14 總結 98
第6章 函數 99
6.1 返迴值 100
6.2 引用調用 100
6.3 函數參數 101
6.3.1 參數會讓函數有所區彆嗎 103
6.3.2 解構參數 104
6.3.3 默認參數 105
6.4 函數作為對象屬性 105
6.5 this關鍵字 105
6.6 函數錶達式和匿名函數 107
6.7 箭頭符號 109
6.8 調用、請求和綁定 110
6.9 總結 112
第7章 作用域 113
7.1 作用域和存在 114
7.2 靜態作用域與動態作用域 114
7.3 全局作用域 115
7.4 塊作用域 117
7.5 變量屏蔽 117
7.6 函數、閉包和靜態作用域 119
7.7 即時調用函數錶達式 120
7.8 函數作用域和提升 121
7.9 函數提升 123
7.10 臨時死區 124
7.11 嚴格模式 124
7.12 總結 125
第8章 數組及其處理 126
8.1 數組概覽 126
8.2 操作數組內容 127
8.2.1 在起始和末尾添加或刪除元素 128
8.2.2 在末尾添加多個元素 128
8.2.3 獲取子數組 128
8.2.4 從任意位置添加或刪除元素 129
8.2.5 數組內的分割和替換 129
8.2.6 用指定值填充數組 129
8.2.7 數組反轉和排序 130
8.3 數組搜索 130
8.4 數組的基本操作:map和filter 133
8.5 數組魔法:reduce 135
8.6 數組方法,已刪除或者未定義的元素 138
8.7 字符串連接 138
8.8 總結 139
第9章 對象以及麵嚮對象編程 141
9.1 屬性枚舉 141
9.1.1 for...in 142
9.1.2 Object.keys 142
9.2 麵嚮對象編程 143
9.2.1 創建類和實例 143
9.2.2 動態屬性 145
9.2.3 類即函數 146
9.2.4 原型 147
9.2.5 靜態方法 148
9.2.6 繼承 149
9.2.7 多態 151
9.2.8 枚舉對象屬性,迴顧 151
9.2.9 字符串錶示 152
9.3 多繼承、混閤類和接口 153
9.4 總結 155
第10章 Maps和Sets 156
10.1 Maps 156
10.2 Weak Maps 158
10.3 Sets 159
10.4 Weak Sets 160
10.5 打破對象習慣 161
第11章 異常和錯誤處理 162
11.1 Error對象 162
11.2 使用try和catch處理異常 163
11.3 拋齣異常 164
11.4 異常處理和調用棧 165
11.5 try...catch... finally 166
11.6 讓異常成為例外 167
第12章 迭代器和生成器 168
12.1 迭代協議 170
12.2 生成器 172
12.2.1 yield錶達式和雙嚮交流 173
12.2.2 生成器和返迴值 175
12.3 總結 175
第13章 函數和抽象思考的力量 176
13.1 函數作為子程序 176
13.2 函數作為有返迴值的子程序 177
13.3 函數即…函數 178
13.4 那又如何? 180
13.5 IIEFs和異步代碼 182
13.6 函數變量 184
13.6.1 數組中的函數 186
13.6.2 將函數傳給函數 187
13.6.3 在函數中返迴函數 188
13.7 遞歸 189
13.8 總結 190
第14章 異步編程 191
14.1 類比 192
14.2 迴調 192
14.2.1 setInterval和clearInterval 193
14.2.2 Scope和異步執行 194
14.2.3 錯誤優先迴調 195
14.2.4 迴調地獄 196
14.3 Promise 197
14.3.1 創建Promise 198
14.3.2 使用Promise 198
14.3.3 事件 200
14.3.4 Promise鏈 202
14.3.5 避免不被處理的Promise 203
14.4 生成器 205
14.4.1 嚮前一步和退後兩步 207
14.4.2 不要自己編寫生成器運行器 208
14.4.3 生成器運行器中的異常處理 208
14.5 總結 209
第15章 日期和時間 211
15.1 日期、時區、時間戳以及Unix時間 211
15.2 構造Date對象 212
15.3 Moment.js 213
15.4 JavaScript中Date的實際用法 214
15.5 構造日期對象 214
15.5.1 在服務端構造日期對象 214
15.5.2 在瀏覽器中構造Date對象 215
15.6 傳遞日期 215
15.7 展日期 216
15.8 日期的組成 217
15.9 日期的比較 218
15.10 日期的四則運算 218
15.11 用戶友好的相對日期 219
15.12 總結 220
第16章 數學運算 221
16.1 格式化數字 221
16.1.1 固定小數 222
16.1.2 指數符號 222
16.1.3 固定精度 222
16.1.4 不同進製 223
16.1.5 進一步格式化數字 223
16.2 常量 224
16.3 代數函數 224
16.3.1 冪運算 224
16.3.2 對數函數 225
16.3.3 其他函數 225
16.3.4 僞隨機數生成器 226
16.4 三角函數 227
16.5 雙麯綫函數 227
第17章 正則錶達式 229
17.1 子字符串匹配和替換 229
17.2 構造正則錶達式 230
17.3 使用正則錶達式進行搜索 231
17.4 使用正則錶達式進行替換 231
17.5 消費輸入 232
17.6 分枝 234
17.7 匹配HTML 235
17.8 字符集 235
17.9 具名字符集 236
17.10 重復 237
17.11 句點元字符和轉義 238
17.12 分組 238
17.13 懶惰匹配,貪婪匹配 240
17.14 反嚮引用 241
17.15 替換組 242
17.16 函數替換 243
17.17 錨點 245
17.18 單詞邊界匹配 245
17.19 嚮前查找 247
17.20 動態構造正則錶達式 248
17.21 總結 248
第18章 瀏覽器中的JavaScript 249
18.1 ES5還是ES6 249
18.2 文檔對象模型 250
18.3 關於樹的專用語 252
18.4 DOM中的“Get”方法 253
18.5 查詢DOM元素 253
18.6 多個DOM元素 254
18.7 創建DOM元素 255
18.8 樣式元素 256
18.9 數據屬性 257
18.10 事件 258
18.11 事件捕獲與事件冒泡 259
18.12 Ajax 263
18.13 總結 267
第19章 jQuery 268
19.1 萬能的美元(符號) 268
19.2 引入jQuery 269
19.3 等待DOM加載 269
19.4 jQuery封裝的DOM元素 270
19.5 操作元素 270
19.6 展開jQuery對象 272
19.7 Ajax 273
19.8 總結 273
第20章 Node 274
20.1 Node基礎 274
20.2 模塊(Module) 275
20.3 核心module、文件module和npm module 277
20.4 自定義函數Module 279
20.5 訪問文件係統 281
20.6 進程 284
20.7 操作係統 286
20.8 子進程 287
20.9 流 288
20.10 Web服務器 289
20.11 總結 291
第21章 對象屬性配置和代理 292
21.1 存取器屬性:getter和setter 292
21.2 對象屬性的屬性 294
21.3 對象保護:凍結、封裝、以及阻止擴展 296
21.4 代理 299
21.5 總結 301
第22章 附加資源 302
22.1 在綫文檔 302
22.2 期刊 303
22.3 博客和教程 303
22.4 Stack Overflow 304
22.5 給開源項目做貢獻 306
22.6 總結 307
JavaScript學習指南 第3版 下載 mobi epub pdf txt 電子書
評分
☆☆☆☆☆
——dom的工作方式是先加載靜態頁麵,再動態刷新,並不改變網頁源碼
評分
☆☆☆☆☆
可以,快遞小哥人好。
評分
☆☆☆☆☆
偶爾看到瞭這本書,就被她吸引瞭,學瞭這麼多年的,javascript,總算是遇到一本,值得入手的,javascript的書籍不錯不錯,值得入手,雖然是中捲,但是,顯然,上中下三捲,沒有必然的聯係,看中捲也是不錯的。
評分
☆☆☆☆☆
吾消費京東商城數年,深知各産品琳琅滿目。然,唯此寶物與眾皆不同,為齣淤泥之清蓮,使吾為之動容,心馳神往,以至茶飯不思,寢食難安,輾轉反側無法忘懷,於是乎緊衣縮食,湊齊銀兩,傾吾之所有而能買,東哥之熱心、快遞員之殷切,無不讓人感激涕零,可謂迅雷不及掩耳盜鈴兒響叮當仁不讓世界充滿愛,待打開包裹之時頓時金光四射,屋內升起七彩祥雲,處處皆是祥和之氣。吾驚訝之餘甚是欣喜若狂,嗚呼哀哉!此寶乃是天上物,人間又得幾迴求!遂沐浴更衣,焚香禱告後與人共賞此寶,人皆贊嘆不已,故生此寶物款型及做工,超高性價比之慨且贊吾獨具慧眼與時尚品位,産品介紹果然句句實言,毫無誇大欺瞞之嫌,實乃大傢之風範,忠義之商傢!這個商品還真好,非常喜歡,也很欣賞京東的售後服務和配送速度真的不錯,買東西就在京東買,選自營沒有錯。更多正品保障更多售後保障更快到貨和退換速度無人能敵,看!天下網購發貨速度誰最快,答:京東商城;售後服務誰最好,答:京東商城;配送服務誰最強,答:京東商城;品質保障誰最棒,答:京東商城。正所謂要問電商哪傢強,中國網購數京東!我為什麼喜歡在京東買東西,因為今天買明天就可以送到!
評分
☆☆☆☆☆
非常感謝京東商城給予的優質的服務,從倉儲管理、物流配送等各方麵都是做的非常好的。送貨及時,配送員也非常的熱情,有時候不方便收件的時候,也安排時間另行配送。同時京東商城在售後管理上也非常好的,以解客戶憂患,排除萬難。給予我們非常好的購物體驗。
評分
☆☆☆☆☆
關於設計模式的,算是進階類的,,是該好好學習一下瞭。。
評分
☆☆☆☆☆
轉身撞到現實 又能如何
評分
☆☆☆☆☆
他卻依然 對現實放肆 等著美麗的故事被腐蝕
評分
☆☆☆☆☆
——dom的工作方式是先加載靜態頁麵,再動態刷新,並不改變網頁源碼