書馨卡幫你省薪 2024個(gè)人購(gòu)書報(bào)告 2024中圖網(wǎng)年度報(bào)告
歡迎光臨中圖網(wǎng) 請(qǐng) | 注冊(cè)

深入理解現(xiàn)代JavaScript

出版社:清華大學(xué)出版社出版時(shí)間:2022-04-01
開本: 其他 頁數(shù): 490
中 圖 價(jià):¥76.8(6.0折) 定價(jià)  ¥128.0 登錄后可看到會(huì)員價(jià)
加入購(gòu)物車 收藏
運(yùn)費(fèi)6元,滿39元免運(yùn)費(fèi)
?新疆、西藏除外
本類五星書更多>

深入理解現(xiàn)代JavaScript 版權(quán)信息

深入理解現(xiàn)代JavaScript 本書特色

JavaScript是一門快速發(fā)展的語言,對(duì)于有經(jīng)驗(yàn)的開發(fā)人員來說,如要掌握所有新添加的特性,可能會(huì)面臨挑戰(zhàn)。本書不僅會(huì)帶你探索世界上語言的新特性,而且會(huì)向你展示如何跟蹤這門語言的后續(xù)發(fā)展。本書首先介紹將新特性添加到 JavaScript 的流程,包括這個(gè)流程是如何管理的,以及由誰來管理;隨后深入詳細(xì)地描述每個(gè)新特性或者有調(diào)整的舊特性,并闡述示例用法、可能的陷阱;本書還將提供專業(yè)意見,教你使用新特性代替舊用法。

深入理解現(xiàn)代JavaScript 內(nèi)容簡(jiǎn)介

本書主要內(nèi)容 l 涵蓋ES2015~ES2020中JavaScript的所有新特性以及下一版的預(yù)覽。 l 探索**的語法:空值合并、可選鏈、let和const、類語法、私有方法、私有字段、new.target、數(shù)字分隔符、BigInt、解構(gòu)、默認(rèn)參數(shù)、箭頭函數(shù)、異步函數(shù)、await、生成器函數(shù)、…(rest和spread操作符)、模板字面量、二進(jìn)制和八進(jìn)制字面量、**(求冪運(yùn)算符)、計(jì)算屬性/方法名、for-of、for-await-of、屬性的簡(jiǎn)寫語法等。 l 詳細(xì)介紹新特性和模式:模塊、Promise、迭代、生成器、Symbol、代理、反射、類型化數(shù)組、Atomics、共享內(nèi)存、WeakMap、WeakSet等。 l 揭示常見的陷阱并闡述如何避免它們。 l 展示如何跟進(jìn)和參與JavaScript的改進(jìn)流程。 l 介紹如何在新特性獲得廣泛支持之前使用它們。

深入理解現(xiàn)代JavaScript 目錄

第1章 ES2015~ES2020及后續(xù)版本的

新特性 1

1.1 名稱、定義和術(shù)語 2

1.1.1 Ecma?ECMAScript?TC39? 2

1.1.2 ES6?ES7?ES2015?ES2020? 2

1.1.3 JavaScript“引擎”、瀏覽器及其他 3

1.2 什么是“新特性” 3

1.3 新特性的推動(dòng)流程 5

1.3.1 誰負(fù)責(zé) 5

1.3.2 流程 5

1.3.3 參與 6

1.3.4 跟上新特性的步伐 7

1.4 舊環(huán)境中使用新特性 8

1.5 本章小結(jié) 12

第2章 塊級(jí)作用域聲明:let和const 13

2.1 let和const的介紹 13

2.2 真正的塊級(jí)作用域 14

2.3 重復(fù)聲明將拋出錯(cuò)誤 15

2.4 提升和暫時(shí)性死區(qū) 15

2.5 一種新的全局變量 17

2.6 const:JavaScript的常量 19

2.6.1 const基礎(chǔ) 19

2.6.2 常量引用的對(duì)象仍然是可變的 20

2.7 循環(huán)中的塊級(jí)作用域 21

2.7.1 “循環(huán)中的閉包”問題 21

2.7.2 綁定:變量、常量以及其他

標(biāo)識(shí)符的工作方式 23

2.7.3 while和do-while循環(huán) 27

2.7.4 性能影響 28

2.7.5 循環(huán)塊中的const 29

2.7.6 for-in循環(huán)中的const 29

2.8 舊習(xí)換新 30

2.8.1 用const或let替代var 30

2.8.2 縮小變量的作用域 30

2.8.3 用塊級(jí)作用域替代匿名函數(shù) 30

第3章 函數(shù)的新特性 33

3.1 箭頭函數(shù)和this、super等詞法 34

3.1.1 箭頭函數(shù)語法 34

3.1.2 箭頭函數(shù)和this詞法 37

3.1.3 箭頭函數(shù)不能被用作構(gòu)造函數(shù) 38

3.2 默認(rèn)參數(shù)值 38

3.2.1 默認(rèn)值是表達(dá)式 39

3.2.2 默認(rèn)值在自己的作用域中被計(jì)算 40

3.2.3 默認(rèn)值不會(huì)增加函數(shù)的arity 42

3.3 “rest”參數(shù) 42

3.4 參數(shù)列表和函數(shù)調(diào)用中的

尾后逗號(hào) 44

3.5 函數(shù)的name屬性 45

3.6 在語句塊中聲明函數(shù) 46

3.6.1 在語句塊中聲明函數(shù):標(biāo)準(zhǔn)語義 48

3.6.2 在語句塊中聲明函數(shù):

傳統(tǒng)Web語義 49

3.7 舊習(xí)換新 51

3.7.1 使用箭頭函數(shù)替代各種訪問this

值的變通方式 51

3.7.2 在不使用this或arguments時(shí),

回調(diào)函數(shù)使用箭頭函數(shù) 52

3.7.3 考慮在更多地方使用箭頭函數(shù) 52

3.7.4 當(dāng)調(diào)用者需要控制this的值時(shí),

不要使用箭頭函數(shù) 53

3.7.5 使用參數(shù)默認(rèn)值,而不是

代碼實(shí)現(xiàn) 53

3.7.6 使用“rest”參數(shù)替代arguments

關(guān)鍵字 53

3.7.7 如有必要,考慮使用尾后逗號(hào) 53

第4章 類 55

4.1 類的概念 55

4.2 介紹新的類語法 56

4.2.1 添加構(gòu)造函數(shù) 57

4.2.2 添加實(shí)例屬性 59

4.2.3 添加原型方法 59

4.2.4 添加靜態(tài)方法 61

4.3 添加訪問器屬性 61

4.4 對(duì)比新語法和舊語法 64

4.5 創(chuàng)建子類 66

4.6 關(guān)鍵字super 69

4.6.1 編寫子類構(gòu)造函數(shù) 69

4.6.2 繼承和訪問超類原型的屬性和

方法 70

4.6.3 繼承靜態(tài)方法 73

4.6.4 靜態(tài)方法中的super 75

4.6.5 返回新實(shí)例的方法 75

4.6.6 內(nèi)置對(duì)象的子類 79

4.6.7 super的使用 81

4.7 移除Object.prototype 83

4.8 new.target 84

4.9 類聲明與類表達(dá)式 87

4.9.1 類聲明 87

4.9.2 類表達(dá)式 88

4.10 更多內(nèi)容 89

4.11 舊習(xí)換新 89

第5章 對(duì)象的新特性 91

5.1 可計(jì)算屬性名 91

5.2 屬性的簡(jiǎn)寫語法 92

5.3 獲取和設(shè)置對(duì)象原型 93

5.3.1 Object.setPrototypeOf 93

5.3.2 瀏覽器環(huán)境中的__proto__屬性 94

5.3.3 瀏覽器環(huán)境中的__proto__字面量

屬性名 94

5.4 對(duì)象方法的簡(jiǎn)寫語法,以及類

之外的super 95

5.5 Symbol 97

5.5.1 定義Symbol的原因 97

5.5.2 創(chuàng)建和使用Symbol 99

5.5.3 Symbol并不用于私有屬性 99

5.5.4 全局Symbol 100

5.5.5 內(nèi)置的Symbol值 103

5.6 對(duì)象的新增方法 104

5.6.1 Object.assign 104

5.6.2 Object.is 105

5.6.3 Object.values 105

5.6.4 Object.entries 106

5.6.5 Object.fromEntries 106

5.6.6 Object.getOwnPropertySymbols 106

5.6.7 Object.getOwnPropertyDescriptors 106

5.7 Symbol.toPrimitive 107

5.8 屬性順序 109

5.9 屬性擴(kuò)展語法 110

5.10 舊習(xí)換新 111

5.10.1 創(chuàng)建對(duì)象時(shí)對(duì)動(dòng)態(tài)變量使用可

計(jì)算屬性名 111

5.10.2 從同名變量初始化對(duì)象時(shí),

使用簡(jiǎn)寫語法 111

5.10.3 使用Object.assign替代自定義的

擴(kuò)展方法或者顯式復(fù)制所有

屬性 112

5.10.4 基于已有對(duì)象創(chuàng)建新對(duì)象時(shí),

使用屬性擴(kuò)展語法 112

5.10.5 使用Symbol避免屬性名沖突 112

5.10.6 使用Object.getPrototypeOf/

setPrototypeOf替代__proto__ 112

5.10.7 使用對(duì)象方法的簡(jiǎn)寫語法來

定義對(duì)象中的方法 112

第6章 可迭代對(duì)象、迭代器、for-of循環(huán)、

可迭代對(duì)象的展開語法和

生成器 115



第18章 即將推出的類特性 435

18.1 公有和私有的類字段、方法和

訪問器 435

18.1.1 公有字段(屬性)定義 436

18.1.2 私有字段 440

18.1.3 私有實(shí)例方法和訪問器 446

18.1.4 公有靜態(tài)字段、私有靜態(tài)字段和

私有靜態(tài)方法 450

18.2 舊習(xí)換新 452

18.2.1 使用屬性定義,而不是在構(gòu)造

函數(shù)中創(chuàng)建屬性(在適當(dāng)?shù)?

情況下) 452

18.2.2 使用私有類字段,而不是前綴

(在適當(dāng)?shù)那闆r下) 453

18.2.3 使用私有方法(而不是類外的

函數(shù))進(jìn)行私有操作 453

第19章 展望未來 457

19.1 頂層await 458

19.1.1 概述和用例 458

19.1.2 示例 459

19.1.3 錯(cuò)誤處理 463

19.2 WeakRef和清理回調(diào) 464

19.2.1 WeakRef 464

19.2.2 清理回調(diào) 466

19.3 正則表達(dá)式匹配索引 471

19.4 String.prototype.replaceAll 472

19.5 Atomics的asyncWait方法 472

19.6 其他語法微調(diào) 473

19.6.1 數(shù)字分隔符 473

19.6.2 支持hashbang 474

19.7 廢棄舊的正則表達(dá)式特性 474

19.8 感謝閱讀 475

附錄 出色的特性及對(duì)應(yīng)的章

(向J.K. Rowling致歉) 477


展開全部

深入理解現(xiàn)代JavaScript 作者簡(jiǎn)介

T. J. Crowder是一位擁有30年經(jīng)驗(yàn)的軟件工程師。在他的整個(gè)職業(yè)生涯中,他至少有一半時(shí)間是在使用JavaScript從事開發(fā)工作。他經(jīng)營(yíng)著軟件承包和產(chǎn)品公司Farsight Software。他經(jīng)常在Stack Overflow上為人們提供幫助,他是十大貢獻(xiàn)者之一和JavaScript標(biāo)簽的頂級(jí)貢獻(xiàn)者。當(dāng)他不工作或?qū)懽鲿r(shí),他總是與他美麗的、支持他的妻子和出色的兒子共度美好時(shí)光。

商品評(píng)論(0條)
暫無評(píng)論……
書友推薦
編輯推薦
返回頂部
中圖網(wǎng)
在線客服