中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

超值優惠券
¥50
滿100可用 有效期2天

全場圖書通用(淘書團除外)

不再提示
關閉
歡迎光臨中圖網 請 | 注冊
> >
JAVASCRIPT核心原理:規范、邏輯與設計

包郵 JAVASCRIPT核心原理:規范、邏輯與設計

作者:周愛民
出版社:人民郵電出版社出版時間:2023-07-01
開本: 16開 頁數: 304
中 圖 價:¥69.9(7.0折) 定價  ¥99.8 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

JAVASCRIPT核心原理:規范、邏輯與設計 版權信息

JAVASCRIPT核心原理:規范、邏輯與設計 本書特色

1.細致講解核心知識點。借由ECMAScript規范的設計來討論JavaScript核心的語言特性的演進與發展,并瞻見這門語言的未來。

2.詳細介紹JavaScript語言。探索“JavaScript語言為什么這樣設計”,以及“這樣的設計對寫代碼有什么影響”,講解JavaScript的執行現場和可執行結構,揭開執行系統的面紗。

3.以通俗易懂的方式呈現JavaScript的動態語言特性,揭示所謂“嚴格模式”在全局環境中的部分真相。

JAVASCRIPT核心原理:規范、邏輯與設計 內容簡介

本書是一本JavaScript精進指南,全面剖析JavaScript的核心技術。全書共分為6篇,**篇講解JavaScript的基礎概念,第二篇講解JavaScript的運行過程,第三篇講解JavaScript面向對象編程體系中*核心的設計,第四篇講解JavaScript作為動態語言的主要特性,第五篇講解JavaScript作為并行語言的主要持性,第六篇講解ECMAScript 2019之后的新增特性,并對ECMAScript 2022之后將添加的特性進行解析。 每章用一行代碼引出,所講內容包括該行代碼的特殊性、所涉問題的領域、逐步的解析、相似或同類的問題、潛在的應用、不為人知的歷史、標準規范對此代碼的態度、業界的看法與爭議等。 本書適合有一定編程基礎的JavaScript開發人員與深度愛好者閱讀,幫助讀者深入理解JavaScript核心原理,實現從粗通到精通的進階。

JAVASCRIPT核心原理:規范、邏輯與設計 目錄

第 一篇 從零開始:重新認識JavaScript語言的基礎概念

第 1章 生存周期:JavaScript變量與引用的銷毀 2

1.1 習慣中用“引用”來區別數據類型的操作方式 3

1.1.1 刪除運算到底在試圖銷毀什么 4

1.1.2 表達式的結果是什么 4

1.2 深入理解“引用(規范類型)” 5

1.3 引用在引擎內部的主要行為 6

1.4 從引用的發現到銷毀 6

1.5 小結 7

第 2章 賦值:賦值過程中出現變量泄露的原因 9

2.1 從變量聲明到賦值綁定的全程解析 10

2.1.1 賦值在語言設計中稱為綁定 11

2.1.2 用賦值語法實現綁定導致的問題 12

2.2 變量泄露:向一個不存在的變量賦值 12

2.3 在連續賦值過程中發生的行為細節 14

2.4 在應用中使用“賦值語句魔法”的技巧 15

2.5 小結 16

第3章 表達式:對運算過程的觀察與分析 17

3.1 在運算過程中丟失的數據的難解之謎 18

3.1.1 深度解析聲明語句與賦值表達式的語義差別 18

3.1.2 來自《JavaScript權威指南》的解釋 19

3.2 表達式連續運算過程中的變量、值與引用 20

3.3 用代碼重現引用覆蓋的現場 21

3.4 技術的取巧之處 22

3.5 小結 23

第4章 名字與導出:“有名字”是構建邏輯的基礎 24

4.1 能導出的只有名字和值 25

4.1.1 代碼就是文本 25

4.1.2 詳解export的語法與語義 25

4.2 export導出名字的具體邏輯 27

4.2.1 導出:同化名字與值的處理邏輯 27

4.2.2 綁定:通過執行頂層代碼實現的裝配過程 28

4.2.3 問題:函數表達式執行中不綁定名字 28

4.3 匿名函數定義及其名字處理 29

4.4 有關導出語句的一些補充 30

4.5 小結 31

第5章 作用域:循環計算成本高昂的原因 32

5.1 代碼分塊與塊級作用域 33

5.2 循環語句中的塊 34

5.2.1 特例 35

5.2.2 特例中的特例 35

5.3 第二個作用域的必要性 36

5.4 for循環在運行時需要更多作用域 37

5.5 小結 38

第二篇 從表達式到執行引擎:運行代碼的核心機制

第6章 執行環境的秘密:語句的運行與完成的視角 40

6.1 用中斷代替跳轉 41

6.1.1 跳轉到語句結束的位置 41

6.1.2 跳轉到標簽約定的位置 42

6.2 執行現場的回收 43

6.3 語句執行的意義 44

6.4 中斷語句的特殊性 45

6.4.1 *小化的break語句 46

6.4.2 返回empty的語句 46

6.5 小結 46

第7章 深入探索JavaScript中的特殊執行體 47

7.1 抽象確定邏輯的執行體 48

7.2 幾種特殊的可執行結構 48

7.2.1 參數表 48

7.2.2 擴展風格的參數表 49

7.2.3 賦值模式 50

7.3 模板字面量 52

7.4 小結 53

第8章 閉包、函數與函數式編程語言的關系 54

8.1 函數的一體兩面 55

8.1.1 在運行期一個實例有多個閉包 55

8.1.2 閉包用于承載兩個語義組件 56

8.2 簡單參數類型 57

8.2.1 傳入參數的處理 57

8.2.2 意外 58

8.2.3 未初始化綁定 58

8.3 *小化的函數式編程語言示例 59

8.4 小結 60

第9章 迭代過程及其出錯處理機制 61

9.1 遞歸與迭代 62

9.1.1 迭代對執行過程的重造和使用 63

9.1.2 展開語法 63

9.2 JavaScript中如何實現迭代處理 64

9.2.1 內部迭代過程 64

9.2.2 不可思議的異常處理邏輯 65

9.3 在迭代中處理異常的關鍵:誰是使用者 66

9.4 小結 68

第 10章 從迭代向生成器函數演進的過程 69

10.1 將迭代過程代表的循環邏輯展開 70

10.2 用生成器函數對循環邏輯進行二次重構 71

10.3 由next()方法負責執行引擎的喚起 73

10.4 為next()方法的傳入參數賦予新的意義 73

10.5 小結 74

第 11章 ECMAScript規范起步 75

11.1 第三行:返回結果 76

11.2 第二行:取引用的值 77

11.2.1 語句的執行者 77

11.2.2 執行期值的覆蓋與讀取 78

11.2.3 取引用值的具體方法 79

11.3 第 一行:從執行到取結果的基礎模式 80

11.4 在ECMAScript中如何理解值1 80

11.5 小結 81

第三篇 從原型到類:向應用編程語言的進化

第 12章 詳解屬性及其性質 84

12.1 JavaScript 1.0~1.3中的對象 85

12.1.1 面向對象的基礎設計與實現 85

12.1.2 屬性存取及其可見性問題 86

12.2 自有屬性與從原型中繼承來的屬性 87

12.3 字面量、標識符與屬性 88

12.4 屬性存取的不確定性 88

12.5 小結 89

第 13章 從構造器到類:創建對象的方法 90

13.1 JavaScript支持繼承的歷史 91

13.1.1 基于對象的JavaScript 91

13.1.2 類與構造器 91

13.1.3 ES6之后的類 92

13.1.4 總結 93

13.2 兩種創建對象this的順序 94

13.3 改變對象創建的結果 95

13.4 小結 96

第 14章 從無到有:訪問父類的能力 97

14.1 面向對象早期設計中的概念抽象 98

14.2 為什么要有super 98

14.3 super指向什么 99

14.4 調用父類方法super.xxx() 100

14.4.1 super.xxx()中的this值 100

14.4.2 super()中的父類構造方法 101

14.4.3 構造方法在設計時面臨的選擇 102

14.5 訪問父類屬性super.xxx 102

14.6 小結 103

第 15章 實現用戶自定義的構建過程 105

15.1 自定義構建過程的必要性 106

15.1.1 關于隱式的構造方法 106

15.1.2 非派生類不用調用super() 107

15.2 定制的構造方法 108

15.3 定制構造器能返回任意對象 109

15.4 小結 109

第 16章 數據結構視角下的對象本質 111

16.1 對象的前世今生 112

16.2 兩種數據結構 113

16.3 結構的反面:解構 114

16.4 對象將兩種數據結構合而為一 115

16.5 小結 117

第 17章 原子層級上的對象與行為 118

17.1 null值 119

17.2 Null類型 120

17.3 null是所有原子對象的父類實例 121

17.4 從繼承性的角度觀察原子對象 122

17.4.1 派生自原子的類 122

17.4.2 一般函數/構造器 123

17.5 原子行為 124

17.6 小結 124

第四篇 從粗通到精通的進階之路:唯一不變的是變化本身

第 18章 原始值:類型系統運算的終極目標 126

18.1 類型系統的簡化 127

18.1.1 從值到對象的類型轉換 127

18.1.2 對象可以轉換成哪些值 127

18.1.3 值與值之間的轉換 129

18.2 問題:將數組和對象相加會發生什么 130

18.3 分析:隱式轉換中的意圖推斷和轉換過程 131

18.3.1 返回值本身 131

18.3.2 返回內部槽中的原始值 132

18.3.3 作為原始值處理 132

18.3.4 使用傳統的類型轉換邏輯 133

18.4 解題 133

18.4.1 從對象到原始值的轉換 133

18.4.2 加號運算符的特殊性 134

18.4.3 字符串在加號運算符中的優先權 134

18.4.4 預期情況與非預期情況下的處理 135

18.5 Date特例的進一步分析 136

18.6 小結 137

第 19章 JavaScript實現動態執行時的基礎設施 138

19.1 eval執行對傳入參數的理解 139

19.2 eval執行對環境的要求 139

19.2.1 環境 140

19.2.2 執行上下文 140

19.2.3 管理 141

19.2.4 不用于執行的環境 142

19.2.5 eval()的環境 143

19.3 特殊的非嚴格模式的全局 144

19.4 小結 145

第 20章 非嚴格模式的全局環境中的動態執行 146

20.1 在全局環境中的eval 147

20.2 名字之爭:對eval安全性的權衡 148

20.3 嚴格模式是執行限制而不是環境屬性 149

20.4 直接調用與間接調用的對比 150

20.5 為什么本章標題下的代碼是間接調用 151

20.6 eval()怎么返回結果 153

20.7 小結 154

第 21章 動態函數及其工作原理 155

21.1 動態創建函數的方法 156

21.1.1 得到函數的幾種途徑 156

21.1.2 幾種動態函數的構造器 157

21.1.3 函數的3個組件 157

21.1.4 動態函數的創建過程 158

21.2 動態函數與其他函數的一致性 159

21.3 動態創建函數與間接調用eval()的唯一差異 159

21.4 小結 160

第五篇 從有序中抽離時間:并行的本質不是有序而是重復

第 22章 Promise的精華:then鏈 162

22.1 早期JavaScript中的并行邏輯 163

22.2 從回調到Promise的then鏈 164

22.2.1 then鏈與其他主要概念之間的關系 164

22.2.2 并生體:從then鏈的本質來理解時間剝離 165

22.3 then鏈的起始端:resolve()/reject()置值器 166

22.4 通過then鏈交付數據 168

22.4.1 p.then(f)中f的傳入值 168

22.4.2 p.then(f)中f的返回值 169

22.5 小結 170

第 23章 then鏈中的異數:Thenable對象與類型模糊 171

23.1 Thenable是行為化的Promise 172

23.1.1 Thenable是通過特定界面向外界陳述自身值的對象 172

23.1.2 then方法需要有執行回調的潛在能力 173

23.2 Thenable值的可變性及其影響 174

23.3 Thenable中then()的返回值 176

23.4 then()的主動喚起與被動喚起 177

23.5 Thenable的概念轉換與類型模糊 177

23.6 小結 178

第 24章 Promise類與子類 180

24.1 Promise類的應用:以“Hello world”程序為例 181

24.1.1 用三元組替代Promise的行為 181

24.1.2 執行器中的其他邏輯 182

24.2 類上的原型方法:以異常處理為例 182

24.3 子類及其構造方法的界面 184

24.3.1 定制執行器邏輯及其返回 184

24.3.2 定制構造方法的界面 185

24.4 小結 186

第 25章 精巧的設計:await/async 187

25.1 異步函數與異步上下文 188

25.1.1 異步上下文的獨特之處 188

25.1.2 異步在多次調用的不同表現 189

25.2 await上演的帽子魔法 190

25.2.1 執行棧上的細節變化 190

25.2.2 處理數據x的詳細邏輯 191

25.3 async/await以及yield等特殊的名字 193

25.4 小結 195

第 26章 并發與多線程 196

26.1 ECMAScript中的線程并發模型 197

26.1.1 多線程并發執行環境 197

26.1.2 資源爭用:并發執行的核心沖突 198

26.2 工作線程及其調度 198

26.2.1 通知與數據交換 201

26.2.2 游離狀態與調度模型 201

26.2.3 現實環境 201

26.3 持鎖訪問 202

26.3.1 Atomics.wait()的細節 205

26.3.2 lock()方法的使用以及它存在的問題 206

26.3.3 資源規劃、競爭與死鎖 208

26.4 小結 210

第 27章 并發在分布式環境中的應用 211

27.1 從無視時間到管理時間 211

27.2 靜態規劃的本質是假設系統不受時間流逝的影響 212

27.2.1 需要基于一個可通信網絡 213

27.2.2 需要檢測資源狀態 214

27.2.3 需要帶預備過程的兩階段提交 215

27.2.4 用一對完整的“請求/響應”來獲取資源 215

27.3 游離狀態在分布式系統中的問題 216

27.4 去中心化與分布式模型 217

27.5 小結 218

第六篇 致未來:新的語言特性

第 28章 動靜之間的平衡:import() 220

28.1 ES6模塊的主要問題 221

28.1.1 瀏覽器端的特殊性 221

28.1.2 服務器端的簡單需求 222

28.1.3 ES6規范的選擇 224

28.2 動態導入的模塊 224

28.2.1 語法查錯 225

28.2.2 決定時效性 226

28.3 import()的出現 226

28.4 瀏覽器生態下的動態導入 227

28.5 受ESM模塊影響的網頁腳本執行順序 231

28.6 小結 232

第 29章 所有的組合:Promise.allSettled()和Promise.any() 233

29.1 組合的基本原則 234

29.1.1 通過組合來擴展系統的外延 234

29.1.2 尋求合理的補充 235

29.1.3 少即是多的理念 238

29.2 更多組合、更多選擇 239

29.3 小結 241

第30章 與null的長期斗爭:從 .到 242

30.1 使用null和undefined的一些*佳實踐 243

30.2 空值檢測的一些預期性質 245

30.3 問號的設計 246

30.3.1 短路運算與 .運算符的短路設計 246

30.3.2 是否存在一種新的語法設計風格 248

30.3.3 JavaScript運算符在設計上的限制 251

30.4 小結 252

第31章 塊的魔法:類強化過程中的那些方案 254

31.1 代碼的組織:形式分塊 255

31.1.1 信息隱蔽 255

31.1.2 結構化 256

31.1.3 映射 256

31.1.4 在JavaScript中代碼分塊與作用域的關系 257

31.2 表達式級別的詞法作用域 257

31.3 圍繞類或對象的信息隱蔽進行的設計 260

31.3.1 字段:TC39對信息隱蔽的理解 261

31.3.2 塊:類構造與實例構造過程的組織與聯系 264

31.3.3 類的進一步強化:塊化和注解化 266

31.4 有關作用域的兩點補充設計 268

31.5 小結 269

第32章 計算與應用:數據類型設計上的強化或概念擴展 271

32.1 JavaScript的內建數據類型與標準庫 273

32.1.1 對象與標準庫 273

32.1.2 標準庫的結構 273

32.1.3 強化標準庫的進展 274

32.2 在基礎類型中對有序類型的進一步設計 275

32.3 在內存與線程相關技術中對應用環境的更多考量 278

32.4 宿主行為規范 280

32.5 小結 283

第33章 *后的屏障:頂層await 285

33.1 模塊的狀態 286

33.2 模塊的頂層代碼 287

33.3 模塊頂層代碼中的await 288

33.4 瀏覽器環境下的異步 290

33.5 *后一塊落井石 291

33.6 小結 294

附錄A 22道測試題 295

附錄B 測試題答案及解析 299
展開全部

JAVASCRIPT核心原理:規范、邏輯與設計 作者簡介

周愛民,國內軟件開發界資深架構師、軟件工程師。有20余年的軟件開發與架構、項目管理、團隊建設的經驗,曾任盛大網絡平臺架構師、支付業務架構師、豌豆英架構師和上海南潮架構師等職。從1998年開始了解并應用JavaScript,著有前端“綠皮書”《JavaScript語言精髓與編程實踐》,曾發布Qomo、 QoBean及分布式架構框架N4C等開源項目。已出版的其他作品有《大道至簡》 《大道至易》和《Delphi源代碼分析》。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 永嘉县奥阳陶瓷阀门有限公司| 纯水设备_苏州皙全超纯水设备水处理设备生产厂家 | 磷酸肌酸二钠盐,肌酐磷酰氯-沾化欣瑞康生物科技 | 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 扬尘监测_扬尘监测系统_带证扬尘监测设备 - 郑州港迪科技有限公司 | 电磁辐射仪-电磁辐射检测仪-pm2.5检测仪-多功能射线检测仪-上海何亦仪器仪表有限公司 | 安规_综合测试仪,电器安全性能综合测试仪,低压母线槽安规综合测试仪-青岛合众电子有限公司 | 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 环压强度试验机-拉链拉力试验机-上海倾技仪器仪表科技有限公司 | 上海律师咨询_上海法律在线咨询免费_找对口律师上策法网-策法网 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) | 西装定制/做厂家/公司_西装订做/制价格/费用-北京圣达信西装 | 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | 不锈钢水箱厂家,不锈钢保温水箱-山东桑特供水设备 | 对夹式止回阀_对夹式蝶形止回阀_对夹式软密封止回阀_超薄型止回阀_不锈钢底阀-温州上炬阀门科技有限公司 | 异噻唑啉酮-均三嗪-三丹油-1227-中北杀菌剂厂家 | 宏源科技-房地产售楼系统|线上开盘系统|售楼管理系统|线上开盘软件 | 云南丰泰挖掘机修理厂-挖掘机维修,翻新,再制造的大型企业-云南丰泰工程机械维修有限公司 | 路面机械厂家| 缝纫客| 安徽控制器-合肥船用空调控制器-合肥家电控制器-合肥迅驰电子厂 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | HEYL硬度计量泵-荧光法在线溶解氧仪-净时测控技术(上海)有限公司 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 冷藏车-东风吸污车-纯电动环卫车-污水净化车-应急特勤保障车-程力专汽厂家-程力专用汽车股份有限公司销售二十一分公司 | 家德利门业,家居安全门,别墅大门 - 安徽家德利门业有限公司 | 微量水分测定仪_厂家_卡尔费休微量水分测定仪-淄博库仑 | 开云(中国)Kaiyun·官方网站-登录入口 | 硬度计_影像测量仪_维氏硬度计_佛山市精测计量仪器设备有限公司厂家 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | 小型单室真空包装机,食品单室真空包装机-百科 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 | 宝鸡市人民医院 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 冷凝锅炉_燃气锅炉_工业燃气锅炉改造厂家-北京科诺锅炉 | 阿里巴巴诚信通温州、台州、宁波、嘉兴授权渠道商-浙江联欣科技提供阿里会员办理 |