TOP
0
0
三民出版.新書搶先報|最速、最優惠的新鮮貨報給你知!
深入理解JavaScript特性(簡體書)
滿額折

深入理解JavaScript特性(簡體書)

商品資訊

人民幣定價:79 元
定價
:NT$ 474 元
優惠價
87412
海外經銷商無庫存,到貨日平均30天至45天
下單可得紅利積點:12 點
相關商品
商品簡介
作者簡介
目次

商品簡介

本書旨在讓讀者輕鬆學習JavaScript的新進展,包括ES6及後續更新。書中提供了大量實用示例,以循序漸進的方式講解了非同步函數、物件解構、動態導入及非同步生成器等內容。本書不僅介紹了箭頭函數、解構、範本字面量以及其他語法方面的新元素,還全面展示了ES6引入的流程控制機制,以及如何高效地簡化自己的代碼。本書的討論還涉及ES6內置的新集合類型、使用代理控制屬性訪問、ES6中內置API的改進、CommonJS與ECMAScript模組的互用性等方面。

作者簡介

尼古拉斯·貝瓦誇(Nicolás Bevacqua) 

知名JavaScript佈道師,來自阿根廷的JavaScript編程高手,目前是Elastic公司用戶介面工程師。另著有《JavaScript Web應用開發》一書。 


【譯者簡介】 

李松峰 

360前端開發專家、前端TC委員、W3C AC代表,奇舞團Web字體服務“奇字形檔”作者。 

劉冰晶 

畢業于北京郵電大學,現為奇舞團前端開發工程師,專注于資料視覺化以及前端動畫領域。 

高峰 

碩士,畢業于中國科學技術大學軟體學院。現為奇虎360前端開發工程師。 


【審校簡介】 

黃小璐 

畢業于華中科技大學電腦學院。現為奇虎360軟體發展工程師。參與翻譯了《高性能HTML5》《移動Web手冊》《大型JavaScript應用*佳實踐指南》《Web開發**指南》等書。 

歐雪雯 

前端開發工程師,多年從事科技、前端技術領域業餘翻譯工作。

目次

序 xi
前言 xiii
第1章 ECMAScript和JavaScript的未來 1
1.1 JavaScript標準簡史 1
1.2 持續迭代的ECMAScript 3
1.3 瀏覽器支持和輔助工具 5
1.3.1 Babel轉譯器簡介 5
1.3.2 使用ESLint提高代碼質量和一致性 9
1.4 ES6特性 11
1.5 JavaScript的未來 12
第2章 ES6基礎 14
2.1 對象字面量 14
2.1.1 屬性值簡寫 14
2.1.2 可計算屬性名 15
2.1.3 方法定義 17
2.2 箭頭函數 18
2.2.1 詞法作用域 19
2.2.2 箭頭函數的寫法 20
2.2.3 優點和用例 21
2.3 解構 22
2.3.1 對象的解構 22
2.3.2 數組的解構 25
2.3.3 函數參數的默認值 25
2.3.4 函數參數的解構 26
2.3.5 解構的用例 28
2.4 剩餘參數和擴展運算符 29
2.4.1 剩餘參數 29
2.4.2 擴展運算符 30
2.5 模板字面量 32
2.5.1 字符串插值 32
2.5.2 多行模板字面量 33
2.5.3 標簽模板 35
2.6 let和const聲明 37
2.6.1 塊級作用域和let聲明 38
2.6.2 暫時性死區 39
2.6.3 const聲明 41
2.6.4 const和let的優勢 42
第3章 類、符號、對象和裝飾器 44
3.1 類 44
3.1.1 使用類 44
3.1.2 類的屬性和方法 47
3.1.3 類的繼承 49
3.2 符號 51
3.2.1 本地符號 51
3.2.2 符號的實際用法 53
3.2.3 全域符號註冊表 55
3.2.4 眾所周知的符號 57
3.3 對象的內置改進 58
3.3.1 使用Object.assign擴展對象 58
3.3.2 使用Object.is進行對象比較 61
3.3.3 Object.setPrototypeOf 62
3.4 裝飾器 63
3.4.1 初識JavaScript裝飾器 63
3.4.2 裝飾器疊加及不變性提醒 64
3.4.3 用例:C#中的特性 64
3.4.4 在JavaScript中裝飾屬性 66
第4章 迭代與流程控制 68
4.1 Promise 68
4.1.1 快速理解Promise 68
4.1.2 Promise的延續與連綴 72
4.1.3 創建Promise 76
4.1.4 Promise的狀態 78
4.1.5 Promise#finally提案 79
4.1.6 Promise.all和Promise.race 81
4.2 迭代器協議與可迭代協議 83
4.2.1 迭代的原理 83
4.2.2 無窮序列 85
4.2.3 迭代對象以生成鍵/值對 88
4.2.4 打造多功能播放列表 90
4.3 生成器函數與生成器對象 93
4.3.1 生成器基礎 93
4.3.2 手工迭代生成器 96
4.3.3 將生成器混入可迭代對象 97
4.3.4 使用生成器遍歷樹 99
4.3.5 傳遞生成器函數 101
4.3.6 處理異步流 102
4.3.7 在生成器上拋出錯誤 103
4.3.8 代替生成器返回 104
4.3.9 基於生成器的異步I/O 105
4.4 異步函數 109
4.4.1 各種異步代碼 109
4.4.2 使用async/await 111
4.4.3 併發異步流 112
4.4.4 錯誤處理 113
4.4.5 深入理解異步函數114
4.5 異步迭代 119
4.5.1 異步迭代器 119
4.5.2 異步生成器 120
第5章 巧妙使用ES中的集合 122
5.1 使用ES6 map 124
5.1.1 初識ES6 map 124
5.1.2 散列映射和DOM元素 128
5.2 理解和使用WeakMap 130
5.3 ES6中的Set 131
5.4 ES6 WeakSet 133
第6章 使用代理控制屬性訪問 136
6.1 瞭解代理 136
6.1.1 捕獲get訪問 137
6.1.2 捕獲set訪問 138
6.1.3 通過代理實現模式驗證 140
6.2 可撤銷代理 142
6.3 代理捕獲器 143
6.3.1 has捕獲器 143
6.3.2 deleteProperty捕獲器 144
6.3.3 defineProperty捕獲器 146
6.3.4 ownKeys捕獲器 148
6.4 高級代理捕獲器 150
6.4.1 getOwnPropertyDescriptor捕獲器 150
6.4.2 apply捕獲器 151
6.4.3 construct捕獲器 154
6.4.4 getPrototypeOf捕獲器 156
6.4.5 setPrototypeOf捕獲器 157
6.4.6 preventExtensions捕獲器 158
6.4.7 isExtensible捕獲器 159
第7章 ES6中內置API的改進 161
7.1 數字 161
7.1.1 二進制和八進制字面量 161
7.1.2 Number.isNaN 162
7.1.3 Number.isFinite 164
7.1.4 Number.parseInt 165
7.1.5 Number.parseFloat 166
7.1.6 Number.isInteger 166
7.1.7 Number.EPSILON 167
7.1.8 Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER 167
7.1.9 Number.isSafeInteger 168
7.2 Math 170
7.2.1 Math.sign 171
7.2.2 Math.trunc 171
7.2.3 Math.cbrt 171
7.2.4 Math.expm1 172
7.2.5 Math.log1p 172
7.2.6 Math.log10 173
7.2.7 Math.log2 173
7.2.8 三角函數174
7.2.9 Math.hypot 174
7.2.10 按位計算助手 174
7.3 字符串和Unicode 175
7.3.1 String#startsWith 175
7.3.2 String#endsWith 176
7.3.3 String#includes 177
7.3.4 String#repeat 177
7.3.5 字符串填充和去空白 179
7.3.6 Unicode 180
7.3.7 String.prototype[Symbol.iterator] 181
7.3.8 有關分割字形段的提案 182
7.3.9 String#codePointAt 183
7.3.10 String.fromCodePoint 184
7.3.11 Unicode-Aware字符串反轉 185
7.3.12 String#normalize 185
7.4 正則表達式 186
7.4.1 粘連修飾符/y 186
7.4.2 Unicode修飾符/u 187
7.4.3 具名捕獲組 188
7.4.4 Unicode屬性轉義 190
7.4.5 後行斷言 191
7.4.6 新的/s(dotAll)修飾符 193
7.4.7 String#matchAll 193
7.5 Array 196
7.5.1 Array.from 196
7.5.2 Array.of 198
7.5.3 Array#copyWithin 199
7.5.4 Array#fill 200
7.5.5 Array#find和Array#findIndex 201
7.5.6 Array#keys 201
7.5.7 Array#values 202
7.5.8 Array#entries 202
7.5.9 Array.prototype[Symbol.iterator] 202
第8章 JavaScript模塊 204
8.1 CommonJS 204
8.2 JavaScript模塊 209
8.2.1 嚴格模式 209
8.2.2 export語句 209
8.2.3 import語句 213
8.2.4 動態import() 215
8.3 ES模塊的實踐考量 216
第9章 實用建議 219
9.1 變量聲明 219
9.2 模板字面量 223
9.3 簡寫及對象解構 227
9.4 剩餘參數和擴展運算符 229
9.5 函數偏好 231
9.6 類和代理 235
9.7 異步代碼流 238
9.8 複雜性蠕變、抽象及約定 241

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 412
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區