JavaScript學習指南第3版(Learning JavaScript, 3rd Edition) JavaScript学习指南 第3版
[美]Ethan Brown 布朗
- 出版商: 人民郵電
- 出版日期: 2017-06-01
- 定價: $479
- 售價: 8.5 折 $407
- 語言: 簡體中文
- 頁數: 307
- 裝訂: 平裝
- ISBN: 7115456321
- ISBN-13: 9787115456328
-
相關分類:
JavaScript
-
相關翻譯:
JavaScript 學習手冊, 3/e (Learning JavaScript: Add Sparkle and Life to Your Web Pages, 3/e) (繁中版)
買這商品的人也買了...
-
$1,200$948 -
$580$493 -
$580$452 -
$720$706 -
$650$585 -
$980$774 -
$520$442 -
$520$442 -
$680$530 -
$380$266 -
$454Learning TypeScript 中文版
-
$500$395 -
$880$792 -
$590$460 -
$390$332 -
$580$452 -
$480$379 -
$580$458 -
$680$578 -
$580$458 -
$490$387 -
$520$411 -
$301Go語言入門經典
-
$403PWA 開發實戰 (Building Progressive Web Apps: Bringing the Power of Native to the Browser)
-
$539Vue.js 設計與實現
相關主題
商品描述
JavaScript是目前Web開發領域非常流行的一種編程語言,得到眾多IT從業人員和編程愛好者的關註。
本書分為22章,在ES6的基礎上,系統地介紹了JavaScript的基本語法、語言特性、相關工具、基本對象、技術以及推動現代JavaScript開發的範例等方面的知識。本書內容由淺及深,既有變量、控制流、函數等基礎內容,又有異步編程、正則表達式等高級知識。
本書適合具備一定JavaScript基礎知識的讀者閱讀,也適合從事程序設計工作並想要深入探索JavaScript語言的讀者閱讀。
這是學習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》作者
作者簡介
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.1 0符號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動態屬性14 5
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