深入理解JavaScript是針對JavaScript初學(xué)者,幫助讀者掌握JavaScript開發(fā)的精髓的JS開發(fā)深入指南,由美國程序員羅徹麥爾編著,全書通過一章章循序漸進的閱讀幫助讀者掌握JavaScript開發(fā)的精髓。每一章都是從教授語言的一個主題開始,并且都給出了實踐以及解決實際缺陷的指南,然后深入到相關(guān)的信息,能夠幫助入門的程序員理解基礎(chǔ)知識,掌握核心實踐,甚至深入了解一些實踐方法的優(yōu)缺點,做到知其然且知其所以然,歡迎js愛好者免費下載閱讀。
全書簡介
《深入理解javascript》是一本全面、深入介紹JavaScript語言的學(xué)習(xí)指南。本書共分四個部分,第1部分幫助讀者快速入手,掌握基本的JavaScript編程要點;第2部分介紹JavaScript的發(fā)展和技術(shù)背景;第3部分深入探索JavaScript,介紹了語法、值、運算符、布爾類型、數(shù)字、字符串、語句、異常捕獲、函數(shù)、變量、對象與繼承、數(shù)組、正則表達式、Date、Math、JSON、標準全局變量、編碼和JavaScript、ECMAScript 5的新特性等內(nèi)容;第4部分介紹技巧、工具和類庫,幫助讀者更好地運用JavaScript進行編程。
本書包括以下內(nèi)容:
JavaScript快速上手:更習(xí)慣面向?qū)ο蟮木幊??這個部分會幫你更快更好地開始學(xué)習(xí)JavaScript。
背景:了解JavaScript的歷史,以及它與其他語言之間的關(guān)系。
深入JavaScript:詳細學(xué)習(xí)ECMAScript 5,從語法,變量,函數(shù),面向?qū)ο缶幊?,再到正則表達式和JSON,以及大量的示例。
技巧、工具和類庫:對現(xiàn)有風(fēng)格指引、實踐、高階技術(shù)、模塊系統(tǒng)、包管理、構(gòu)建工具進行調(diào)研和學(xué)習(xí)。
深入理解javascript章節(jié)目錄
第1部分 JavaScript快速上手
第1章 基礎(chǔ)JavaScript 3
1.1 背景 3
1.1.1 JavaScript與ECMAScript 3
1.1.2 JavaScript的影響和本質(zhì) 3
1.2 語法 4
1.2.1 語法概述 4
1.2.2 語句和表達式 5
1.2.3 分號 5
1.2.4 注釋 6
1.3 變量和賦值 6
1.3.1 賦值 6
1.3.2 復(fù)合賦值運算符 6
1.3.3 標識符與變量名 6
1.4 值 7
1.4.1 原始值和對象 8
1.4.2 原始值 9
1.4.3 對象 9
1.4.4 undefined和null 10
1.4.5 使用typeof和instanceof對值分類 11
1.5 布爾值 13
1.5.1 真值與假值 13
1.5.2 二元邏輯運算符 14
1.5.3 等式運算符 14
1.6 數(shù)字 14
1.7 運算符 15
1.8 字符串 16
1.8.1 字符串運算符 16
1.8.2 字符串方法 17
1.9 語句 17
1.9.1 條件語句 17
1.9.2 循環(huán)語句 18
1.10 函數(shù) 19
1.10.1 函數(shù)聲明的提升特性 19
1.10.2 特殊的變量arguments 20
1.10.3 參數(shù)太多或太少 20
1.10.4 可選參數(shù) 20
1.10.5 強制參數(shù)長度 21
1.10.6 將arguments轉(zhuǎn)換為數(shù)組 21
1.11 異常捕獲 21
1.12 嚴格模式 22
1.13 變量作用域和閉包 22
1.13.1 變量是函數(shù)作用域的 23
1.13.2 變量的提升特性 23
1.13.3 閉包 23
1.13.4 IIFE模式:引入一個新的作用域 24
1.14 對象和構(gòu)造函數(shù) 25
1.14.1 單一對象 25
1.14.2 任意屬性名 26
1.14.3 提取方法 26
1.14.4 方法中的函數(shù) 27
1.14.5 構(gòu)造函數(shù):對象工廠 28
1.15 數(shù)組 29
1.15.1 數(shù)組字面量 29
1.15.2 數(shù)組方法 30
1.15.3 遍歷數(shù)組 30
1.16 正則表達式 31
1.16.1 test()方法:匹配嗎 31
1.16.2 exec()方法:匹配以及捕獲分組 31
1.16.3 replace()方法:搜索和替換 31
1.17 Math 32
1.18 標準庫的其他功能 32
第2部分 背景
第2章 為什么選擇JavaScript 35
2.1 JavaScript可以自由使用嗎 35
2.2 JavaScript優(yōu)雅嗎 36
2.3 JavaScript有用嗎 36
2.3.1 圖形用戶界面 36
2.3.2 其他技術(shù)補充完善JavaScript 36
2.4 JavaScript有什么好用的工具嗎 37
2.5 JavaScript是否足夠快 37
2.6 JavaScript是廣泛使用的嗎 38
2.7 JavaScript有前途嗎 38
2.8 結(jié)論 38
第3章 JavaScript的性質(zhì) 39
3.1 古怪和非官方特性 40
3.2 優(yōu)雅部分 40
3.3 影響 41
第4章 JavaScript是如何創(chuàng)造出來的 42
第5章 標準化:ECMAScript 44
第6章 JavaScript的歷史里程碑 46
第3部分 深入JavaScript
第7章 JavaScript的語法 53
7.1 語法概覽 53
7.2 注釋 54
7.3 表達式與語句 54
7.3.1 表達式 55
7.3.2 語句 55
7.4 控制流語句和塊 57
7.5 使用分號的規(guī)則 57
7.5.1 以塊結(jié)束的語句后面沒有分號 58
7.5.2 空語句 58
7.5.3 自動分號插入 59
7.6 合法標識符 60
7.7 數(shù)字字面量的方法調(diào)用 62
7.8 嚴格模式 62
7.8.1 啟用嚴格模式 62
7.8.2 嚴格模式:建議與注意事項 63
7.8.3 嚴格模式中,變量必須被聲明 63
7.8.4 嚴格模式下的函數(shù) 63
7.8.5 嚴格模式中,設(shè)置或者刪除不可改變的屬性會拋出異常 65
7.8.6 嚴格模式中的不合格標識符不能刪除 65
7.8.7 嚴格模式中,eval更加簡潔 66
7.8.8 嚴格模式中禁用的特性 66
第8章 值 67
8.1 JavaScript中的類型體系 67
8.1.1 JavaScript類型 67
8.1.2 靜態(tài)與動態(tài) 68
8.1.3 靜態(tài)類型與動態(tài)類型 68
8.1.4 靜態(tài)類型檢查和動態(tài)類型檢查 68
8.1.5 強制轉(zhuǎn)換 69
8.2 原始值和對象 69
8.2.1 原始值 70
8.2.2 對象 70
8.3 undefined和null 72
8.3.1 undefined和null的出現(xiàn)場景 72
8.3.2 檢測undefined和null 73
8.3.3 undefined和null的歷史 74
8.3.4 修改undefined 75
8.4 原始值的包裝對象 76
8.4.1 包裝對象不同于原始值 76
8.4.2 原始值的包裝與去包裝 76
8.4.3 原始值從包裝器借調(diào)方法 77
8.5 強制類型轉(zhuǎn)換 78
8.5.1 強制類型轉(zhuǎn)換會隱藏bug 78
8.5.2 轉(zhuǎn)換成布爾值、數(shù)字、字符串和對象的函數(shù) 78
8.5.3 算法:ToPrimitive()—將值轉(zhuǎn)換為原始值 80
第9章 運算符 82
9.1 運算符和對象 82
9.2 賦值運算符 82
9.3 等號運算符:=== 和 == 84
9.3.1 嚴格相等(===,!==) 84
9.3.2 普通(寬松)相等(==,!=) 85
9.3.3 沒有針對==的有效用例 87
9.4 排序運算符 88
9.5 加號運算符(+) 89
9.6 布爾運算符和數(shù)字運算符 90
9.7 特殊運算符 90
9.7.1 條件運算符(?:) 90
9.7.2 逗號運算符 91
9.7.3 void運算符 91
9.8 通過typeof和instanceof判斷值類型 93
9.8.1 typeof:判斷原始值 93
9.8.2 instanceof:檢測對象是否是給定構(gòu)造函數(shù)的實例 95
9.9 對象運算符 96
第10章 布爾類型 97
10.1 轉(zhuǎn)換成布爾值 97
10.1.1 手動轉(zhuǎn)換為布爾值 97
10.1.2 真值和假值 98
10.2 邏輯運算符 99
10.2.1 二元邏輯運算符:與(&&)和或(||) 99
10.2.2 邏輯與(&&) 100
10.2.3 邏輯或(||) 100
10.2.4 邏輯非(!) 101
10.3 等號運算符、排序運算符 101
10.4 Boolean函數(shù) 102
第11章 數(shù)字 103
11.1 數(shù)字字面量 103
11.1.1 說明 103
11.1.2 在字面量上調(diào)用方法 104
11.2 轉(zhuǎn)換成數(shù)字 104
11.2.1 手動轉(zhuǎn)換為數(shù)字 104
11.2.2 parseFloat() 105
11.3 特殊的數(shù)字值 106
11.3.1 NaN 106
11.3.2 Infinity 108
11.3.3 兩個0 109
11.4 數(shù)字的內(nèi)部表示 111
11.5 處理舍入錯誤 112
11.6 JavaScript中的整型 114
11.6.1 整型的范圍 114
11.6.2 將整型表示為浮點數(shù)字 115
11.6.3 安全的整型 116
11.7 轉(zhuǎn)換成整數(shù) 117
11.7.1 通過Math.floor(),Math.ceil()和Math.round()得到整數(shù) 118
11.7.2 通過定制函數(shù)ToInteger()得到整數(shù) 119
11.7.3 通過位運算符得到32位整數(shù) 119
11.7.4 通過parseInt()得到整數(shù) 121
11.8 算術(shù)運算符 122
11.9 位運算符 125
11.9.1 背景知識 125
11.9.2 位運算非操作符 126
11.9.3 二進制位運算符 126
11.9.4 位運算移位操作符 127
11.10 Number函數(shù) 128
11.11 Number構(gòu)造器屬性 128
11.12 Number原型方法 129
11.12.1 Number.prototype.toFixed(fractionDigits?) 129
11.12.2 Number.prototype.toPrecision(precision?) 130
11.12.3 Number.prototype.toString(radix?) 130
11.12.4 Number.prototype.toExponential(fractionDigits?) 131
11.13 用于數(shù)字的函數(shù) 132
11.14 本章參考資料 132
第12章 字符串 133
12.1 字符串字面量 133
12.2 字符串字面量中的轉(zhuǎn)義字符 134
12.3 字符訪問 135
12.4 轉(zhuǎn)換為字符串 135
12.5 字符串比較 137
12.6 字符串拼接 137
12.6.1 合并:加號(+)運算符 137
12.6.2 合并:拼接字符串?dāng)?shù)組 138
12.7 字符串函數(shù) 138
12.8 字符串構(gòu)造器方法 138
12.9 字符串length屬性 139
12.10 字符串原型方法 139
12.10.1 提取子字符串 139
12.10.2 字符串的變換 141
12.10.3 字符串的檢索和比較 142
12.10.4 支持正則表達式的方法 143
第13章 語句 145
13.1 聲明和變量賦值 145
13.2 循環(huán)語句和條件語句的主體 145
13.3 循環(huán) 146
13.3.1 循環(huán)的機制 146
13.3.2 while 147
13.3.3 do-while 147
13.3.4 for 147
13.3.5 for-in 148
13.3.6 for each-in 150
13.4 條件語句 150
13.4.1 if-then-else 150
13.4.2 switch 151
13.5 with語句 153
13.5.1 語法與語義 153
13.5.2 with語句已被廢棄 154
13.5.3 廢棄with的原因 154
13.6 debugger語句 156
第14章 異常捕獲 157
14.1 什么是異常捕獲 157
14.2 JavaScript中的異常捕獲 158
14.2.1 throw 159
14.2.2 try-catch-finally 159
14.2.3 例子 160
14.3 Error構(gòu)造器 161
14.4 棧跟蹤 162
14.5 實現(xiàn)一個自己的異常構(gòu)造器 163
第15章 函數(shù) 164
15.1 JavaScript中函數(shù)的3種形式 164
15.2 術(shù)語:“形參”和“實參” 165
15.3 定義函數(shù) 165
15.3.1 函數(shù)表達式 166
15.3.2 函數(shù)聲明 167
15.3.3 Function構(gòu)造器 167
15.4 函數(shù)提升 167
15.5 函數(shù)的名稱 168
15.6 哪個更好,函數(shù)聲明還是函數(shù)表達式 168
15.7 控制函數(shù)調(diào)用:call(),apply()和bind() 169
15.7.1 func.a(chǎn)pply(thisValue, argArray) 169
15.7.2 func.bind(thisValue, arg1, ..., argN) 170
15.8 參數(shù)缺失或者超出時的處理 170
15.8.1 通過索引訪問所有參數(shù):神奇的arguments變量 170
15.8.2 強制性參數(shù),限制參數(shù)數(shù)量的最小值 172
15.8.3 可選參數(shù) 173
15.8.4 模擬參數(shù)的引用傳遞 173
15.8.5 陷阱:非預(yù)期的可選參數(shù) 174
15.9 具名參數(shù) 175
15.9.1 具名參數(shù)可作為描述信息 175
15.9.2 可選的具名參數(shù) 176
15.9.3 在JavaScript中模擬具名參數(shù) 176
第16章 變量:作用域、環(huán)境和閉包 177
16.1 定義變量 177
16.2 背景知識:靜態(tài)性和動態(tài)性 177
16.3 背景知識:變量的作用域 178
16.4 變量以函數(shù)為作用域 179
16.5 變量聲明的提前 180
16.6 通過IIFE引入新的作用域 181
16.6.1 IIFE變體:前綴運算符 182
16.6.2 IIFE變體:預(yù)內(nèi)置表達式上下文 183
16.6.3 IIFE變體:傳參的IIFE 183
16.6.4 IIFE的應(yīng)用 183
16.7 全局變量 184
16.7.1 最佳實踐:避免創(chuàng)建全局變量 184
16.7.2 模塊系統(tǒng)可以減少全局變量的引入 185
16.8 全局對象 185
16.8.1 跨平臺兼容 186
16.8.2 window的使用場景 186
16.9 環(huán)境:變量的管理 188
16.10 閉包:使得函數(shù)可以維持其創(chuàng)建時所在的作用域 191
16.10.1 通過環(huán)境來控制閉包 191
16.10.2 陷阱:不經(jīng)意間的環(huán)境共用 193
第17章 對象與繼承 195
17.1 第1層:單一對象 195
17.1.1 屬性的種類 195
17.1.2 對象字面量 196
17.1.3 點運算符(.):通過固定鍵值訪問屬性 197
17.1.4 特殊的屬性鍵 199
17.1.5 中括號操作符([]):通過計算出的鍵訪問屬性 199
17.2 把任意值轉(zhuǎn)化為對象 201
17.3 this作為函數(shù)和方法的隱式參數(shù) 202
17.3.1 在調(diào)用函數(shù)時設(shè)置 this:call(),apply()和bind() 202
17.3.2 “用于構(gòu)造函數(shù)的 apply()”詳細闡述了如何配合構(gòu)造函數(shù)
使用apply() 203
17.3.3 用于構(gòu)造函數(shù)的apply() 204
17.3.4 缺陷:提取方法時丟失 this 206
17.3.5 缺陷:方法中的函數(shù)會掩蓋 this 207
17.4 第2層:對象間的原型關(guān)系 209
17.4.1 繼承 209
17.4.2 覆寫 210
17.4.3 通過原型在對象間共享數(shù)據(jù) 210
17.4.4 獲取和設(shè)置原型 211
17.4.5 特殊屬性 __proto__ 213
17.4.6 設(shè)置和刪除僅影響自有屬性 214
17.5 遍歷和檢測屬性 215
17.5.1 列出自有的屬性鍵 215
17.5.2 列出所有的屬性鍵 216
17.5.3 檢測屬性是否存在 216
17.5.4 示例 217
17.6 最佳實踐:遍歷自有屬性 218
17.7 訪問器(getter 和 setter) 218
17.7.1 通過對象字面量定義訪問器 219
17.7.2 通過屬性描述符定義訪問器 219
17.7.3 訪問器和繼承 219
17.8 屬性特性和屬性描述符 220
17.8.1 屬性特性 220
17.8.2 屬性描述符 221
17.8.3 通過描述符獲取和定義屬性 221
17.8.4 復(fù)制對象 223
17.8.5 屬性:定義與賦值 224
17.8.6 繼承的只讀屬性不能被賦值 225
17.8.7 枚舉性:最佳實踐 225
17.9 保護對象 226
17.9.1 防止擴展 226
17.9.2 封閉 227
17.9.3 凍結(jié) 228
17.9.4 缺陷:保護是淺層的 229
17.10 第3層:構(gòu)造函數(shù)—實例工廠 229
17.10.1 JavaScript 中 new 操作符的實現(xiàn) 231
17.10.2 術(shù)語:兩個原型 231
17.10.3 實例的 constructor 屬性 232
17.10.4 instanceof 運算符 234
17.10.5 實現(xiàn)構(gòu)造函數(shù)的小技巧 237
17.11 原型屬性中的數(shù)據(jù) 238
17.11.1 對于實例屬性,避免使用帶初始值的原型屬性 238
17.11.2 避免非多態(tài)的原型屬性 240
17.11.3 多態(tài)的原型屬性 241
17.12 保持數(shù)據(jù)私有性 241
17.12.1 構(gòu)造函數(shù)環(huán)境中的私有數(shù)據(jù)(Crockford私有模式) 241
17.12.2 使用標記的鍵的屬性保存私有數(shù)據(jù) 245
17.12.3 使用具體化鍵的屬性保存私有數(shù)據(jù) 246
17.12.4 通過IIFE保持全局數(shù)據(jù)私有 247
17.13 第4層:構(gòu)造函數(shù)之間的繼承 248
17.13.1 繼承實例屬性 249
17.13.2 繼承原型屬性 249
17.13.3 確保instanceof正常工作 250
17.13.4 覆寫方法 251
17.13.5 父調(diào)用 251
17.13.6 避免硬編碼父構(gòu)造函數(shù)的名字 252
17.13.7 示例:構(gòu)造函數(shù)繼承 253
17.13.8 示例:內(nèi)建構(gòu)造函數(shù)的繼承層次結(jié)構(gòu) 254
17.13.9 反模式:原型是父構(gòu)造函數(shù)的實例 254
17.14 所有對象的方法 254
17.14.1 轉(zhuǎn)換為原始值 254
17.14.2 Object.prototype.toLocaleString() 255
17.14.3 原型式繼承和屬性 255
17.15 泛型方法:借用原型方法 256
17.15.1 通過字面量訪問Object.prototype和Array.prototype 257
17.15.2 調(diào)用泛型方法的例子 258
17.15.3 類似數(shù)組的對象和泛型方法 259
17.15.4 所有泛型方法列表 261
17.16 缺陷:Object作為Map使用 263
17.16.1 缺陷1:繼承影響讀取屬性 263
17.16.2 缺陷2:覆寫會影響調(diào)用方法 265
17.16.3 缺陷3:特殊屬性__proto__ 265
17.16.4 字典模式:沒有原型的對象更適合用作映射 266
17.16.5 最佳實踐 267
17.17 備忘錄:對象的使用 267
第18章 數(shù)組 269
18.1 概述 269
18.1.1 數(shù)組是映射,不是元組 270
18.1.2 數(shù)組也可以具有屬性 270
18.2 創(chuàng)建數(shù)組 270
18.2.1 數(shù)組構(gòu)造函數(shù) 271
18.2.2 多維數(shù)組 271
18.3 數(shù)組索引 272
18.3.1 操作符in與索引 273
18.3.2 刪除數(shù)組元素 273
18.3.3 數(shù)組索引的細節(jié) 273
18.4 長度 275
18.4.1 手動增加數(shù)組的長度 275
18.4.2 減少數(shù)組的長度 276
18.4.3 最大長度 277
18.5 數(shù)組中的“空缺” 277
18.5.1 創(chuàng)建空缺 278
18.5.2 稀疏數(shù)組和密集數(shù)組 278
18.5.3 哪些操作會忽略空缺,而哪些不會 279
18.5.4 移除數(shù)組中的空缺 280
18.6 數(shù)組構(gòu)造函數(shù) 281
18.7 數(shù)組原型方法 281
18.8 添加和刪除元素(破壞性地) 281
18.9 排序和顛倒元素順序(破壞性地) 283
18.9.1 比較數(shù)字 284
18.9.2 比較字符串 284
18.9.3 比較對象 284
18.10 合并、切分和連接(非破壞性地) 285
18.11 值的查找(非破壞性地) 286
18.12 迭代(非破壞性地) 287
18.12.1 檢測方法 287
18.12.2 轉(zhuǎn)化方法 289
18.12.3 歸約函數(shù) 289
18.13 缺陷:類數(shù)組對象 291
18.14 最佳實踐:遍歷數(shù)組 291
第19章 正則表達式 293
19.1 正則表達式語法 293
19.1.1 原子:常規(guī) 293
19.1.2 原子:字符類 295
19.1.3 原子:分組 296
19.1.4 量詞 296
19.1.5 斷言 297
19.1.6 析?。ɑ颍?298
19.2 Unicode 和正則表達式 298
19.3 創(chuàng)建正則表達式 298
19.3.1 字面量與構(gòu)造函數(shù) 299
19.3.2 標識 299
19.3.3 正則表達式的實例屬性 299
19.3.4 幾個創(chuàng)建正則表達式的例子 300
19.4 RegExp.prototype.test:是否存在匹配 300
19.5 String.prototype.search:匹配位置的索引 301
19.6 RegExp.prototype.exec:捕獲分組 301
19.6.1 首次匹配(不設(shè)置標識/g) 302
19.6.2 全部匹配(設(shè)置標識 /g) 302
19.7 String.prototype.match:捕獲分組或返回所有匹配的子字符串 303
19.8 String.prototype.replace:查找和替換 303
19.8.1 Replacement 為字符串的情況 304
19.8.2 當(dāng)Replacement為函數(shù)時 305
19.9 標識 /g 的一些問題 305
19.10 提示與技巧 308
19.10.1 引用文本 308
19.10.2 陷阱:缺少斷言(例如^、$)的正則表達式可以在任意位置
匹配 308
19.10.3 匹配一切或什么都不匹配 308
19.10.4 手動實現(xiàn)逆向查找 309
19.11 正則表達式備忘單 310
第20章 Date 313
20.1 Date構(gòu)造函數(shù) 313
20.2 Date構(gòu)造函數(shù)方法 315
20.3 Date原型方法 315
20.3.1 時間單位的getter和setter方法 316
20.3.2 各種各樣的getter和setter方法 317
20.3.3 將日期轉(zhuǎn)換成字符串 317
20.4 日期和時間格式 319
20.4.1 日期格式(無時間) 319
20.4.2 時間格式(無日期) 320
20.4.3 日期時間格式 321
20.5 時間值:從1970-01-01開始的毫秒數(shù) 321
第21章 Math 323
21.1 Math屬性 323
21.2 數(shù)值函數(shù) 324
21.3 三角函數(shù) 325
21.4 其他函數(shù) 327
第22章 JSON 329
22.1 背景 329
22.1.1 數(shù)據(jù)格式 329
22.1.2 歷史 330
22.1.3 語法 330
22.2 JSON.stringify(value, replacer?, space?) 334
22.2.1 被JSON.stringify()忽略的數(shù)據(jù) 335
22.2.2 toJSON()方法 336
22.3 JSON.parse(text, reviver?) 337
22.4 通過節(jié)點訪問函數(shù)轉(zhuǎn)換數(shù)據(jù) 338
22.4.1 JSON.stringify() 339
22.4.2 JSON.parse() 339
第23章 標準全局變量 341
23.1 構(gòu)造器 341
23.2 Error構(gòu)造器 342
23.3 非構(gòu)造器函數(shù) 342
23.3.1 文字的編碼和解碼 342
23.3.2 數(shù)值歸類與數(shù)值轉(zhuǎn)換 343
23.4 通過eval()和new Function()來動態(tài)執(zhí)行JavaScript代碼 344
23.4.1 使用eval()執(zhí)行代碼 344
23.4.2 通過new Function()執(zhí)行代碼 346
23.4.3 eval()與new Function()比較 347
23.4.4 最佳實踐 347
23.4.5 結(jié)論 347
23.5 Console API 348
23.5.1 Console API在各引擎的標準程度如何 348
23.5.2 簡單的日志記錄 349
23.5.3 檢查和計數(shù) 350
23.5.4 格式化的日志 350
23.5.5 性能和時間 352
23.6 名稱空間和特殊值 353
第24章 編碼和JavaScript 354
24.1 Unicode歷史 354
24.2 Unicode中的重要概念 354
24.3 碼位 356
24.4 Unicode編碼 357
24.5 JavaScript源碼和Unicode 359
24.5.1 內(nèi)部源碼轉(zhuǎn)化 359
24.5.2 源碼外部轉(zhuǎn)化 359
24.6 JavaScript字符串和Unicode 361
24.6.1 轉(zhuǎn)義序列 361
24.6.2 通過轉(zhuǎn)義引用星際平面的字符 361
24.6.3 字符長度計算 362
24.6.4 Unicode正?;?362
24.7 JavaScript正則表達式和Unicode 363
24.7.1 匹配任意的碼元以及任意的碼位 364
24.7.2 庫 364
24.7.3 推薦閱讀的章節(jié)資源 364
第25章 ECMAScript 5的新特性 366
25.1 新特性 366
25.2 語法的改變 367
25.3 標準庫的新功能 367
25.3.1 元編程 367
25.3.2 新方法 368
25.3.3 JSON 369
25.4 兼容舊瀏覽器的小貼士 370
第4部分 技巧、工具和類庫
第26章 元編程風(fēng)格指南 373
26.1 現(xiàn)有風(fēng)格指南 373
26.2 通用技巧 374
26.2.1 代碼應(yīng)該具有一致性 374
26.2.2 代碼應(yīng)該易于理解 374
26.3 普遍認可的最佳實踐 375
26.3.1 括號風(fēng)格 376
26.3.2 推薦字面量而不是構(gòu)造函數(shù) 377
26.3.3 不要自作聰明 378
26.3.4 可接受的技巧 379
26.4 具有爭議的規(guī)則 380
26.4.1 語法 380
26.4.2 變量 381
26.4.3 面向?qū)ο?382
26.4.4 其他 383
26.5 結(jié)論 384
第27章 調(diào)試的語言機制 385
第28章 子類化內(nèi)置構(gòu)造函數(shù) 386
28.1 術(shù)語 386
28.2 障礙1:具有內(nèi)部屬性的實例 386
28.2.1 障礙1的解決方法 388
28.2.2 注意 389
28.3 障礙2:內(nèi)置的構(gòu)造函數(shù)不能作為方法調(diào)用 389
28.4 另一種解決方案:委托 390
第29章 JSDoc:生成API文檔 392
29.1 JSDoc基礎(chǔ) 393
29.1.1 語法 393
29.1.2 命名類型 394
29.2 基礎(chǔ)的標簽 395
29.3 文檔記錄函數(shù)和方法 396
29.4 行內(nèi)類型信息(“行內(nèi)文檔注釋”) 397
29.5 文檔記錄變量、參數(shù)和實例屬性 397
29.6 文檔記錄類 398
29.6.1 通過構(gòu)造函數(shù)定義類 399
29.6.2 通過對象字面量定義類 399
29.6.3 通過帶有@constructs方法的對象字面量定義類 400
29.6.4 子類 400
29.7 其他有用的標簽 401
第30章 類庫 402
30.1 shim和polyfill 402
30.2 四個語言類庫 403
30.3 ECMAScript的國際化API 403
30.3.1 ECMAScript的國際化API,第1版 403
30.3.2 它是怎么樣的標準呢 404
30.3.3 我們可以用它做什么 404
30.3.4 延伸閱讀 404
30.4 JavaScript資源目錄 405
第31章 模塊系統(tǒng)和包管理器 407
31.1 模塊系統(tǒng) 407
31.2 包管理器 408
31.3 簡單粗暴的模塊實現(xiàn) 408
第32章 其他工具 410
第33章 接下來該做什么 412
使用說明
1、下載并解壓,得出pdf文件
2、如果打不開本文件,請務(wù)必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進行閱讀
- 下載地址
發(fā)表評論
0條評論軟件排行榜
熱門推薦
- 得間免費小說電腦版 v5.2.7.172.56M / 簡體中文
- 網(wǎng)易新聞電腦版 v112.697.63M / 簡體中文
- 瀟湘書院電腦版 v2.3.11.888官方版49.65M / 簡體中文
- 數(shù)據(jù)挖掘?qū)д?官方版61.61M / 簡體中文
- 吉利博瑞用戶手冊 pdf高清版57.89M / 簡體中文
- 未公開的Oracle數(shù)據(jù)庫秘密 迪貝斯pdf掃描版34.69M / 簡體中文
- PHP語言精粹電子書 pdf掃描版25.72M / 簡體中文
- linux常用命令大全 chm版1.48M / 簡體中文
- 本草綱目 5.34M / 簡體中文
- Scala程序設(shè)計第二版 pdf高清完整版15.83M / 簡體中文