首頁
請支持這本書:
購買
或
捐款
(廣告,請勿封鎖。)
深入 JavaScript
目錄
I 前言
1 關於本書
1.1 這本書的首頁在哪裡?
1.2 本書包含哪些內容?
1.3 我付費後可以獲得什麼?
1.4 如何預覽內容?
1.5 如何回報錯誤?
1.6 閱讀提示
1.7 符號和慣例
1.8 致謝
II 類型、值、變數
2 JavaScript 中的類型強制轉換
2.1 什麼是類型強制轉換?
2.2 ECMAScript 規範中幫助實作強制轉換的運算
2.3 中場休息:使用 JavaScript 表達規範演算法
2.4 強制轉換演算法範例
2.5 強制轉換的運算
2.6 詞彙表:與類型轉換相關的術語
3 解構演算法
3.1 準備模式比對演算法
3.2 模式比對演算法
3.3 空物件模式和陣列模式
3.4 套用演算法
4 環境:變數背後的原理
4.1 環境:管理變數的資料結構
4.2 透過環境進行遞迴
4.3 透過環境進行巢狀範圍
4.4 封閉和環境
5 詳細了解全域變數
5.1 範圍
5.2 詞彙環境
5.3 全域物件
5.4 在瀏覽器中,
globalThis
沒有直接指向全域物件
5.5 全域環境
5.6 結論:為什麼 JavaScript 既有正常的全域變數,又有全域物件?
5.7 進一步閱讀和本章的來源
III 處理資料
6 複製物件和陣列
6.1 淺層複製與深層複製
6.2 JavaScript 中的淺層複製
6.3 JavaScript 中的深層複製
6.4 進一步閱讀
7 破壞性與非破壞性資料更新
7.1 範例:破壞性和非破壞性物件更新
7.2 範例:破壞性和非破壞性陣列更新
7.3 手動深層更新
7.4 實作通用深層更新
8 共用可變狀態的問題以及如何避免
8.1 什麼是共用可變狀態,為什麼會有問題?
8.2 透過複製資料避免共用
8.3 透過非破壞性更新避免變更
8.4 透過讓資料不可變來防止突變
8.5 避免共用可變狀態的函式庫
IV OOP:物件屬性屬性
9 屬性屬性:簡介
9.1 物件的結構
9.2 屬性描述符
9.3 擷取屬性的描述符
9.4 透過描述符定義屬性
9.5
Object.create()
:透過描述符建立物件
9.6
Object.getOwnPropertyDescriptors()
的使用案例
9.7 省略描述符屬性
9.8 內建建構使用哪些屬性屬性?
9.9 API:屬性描述符
9.10 進一步閱讀
10 保護物件不被變更
10.1 保護層級:防止擴充、封閉、凍結
10.2 防止物件擴充
10.3 封閉物件
10.4 凍結物件
10.5 進一步閱讀
11 屬性:指派與定義
11.1 指派與定義
11.2 理論上的指派與定義(選用)
11.3 實務上的定義與指派
11.4 哪些語言建構使用定義,哪些使用指派?
11.5 進一步閱讀與本章來源
12 屬性的可列舉性
12.1 可列舉性如何影響屬性迭代建構
12.2 預先定義和建立屬性的可列舉性
12.3 可列舉性的使用案例
12.4 結論
V OOP:技術
13 建立類別實例的技術
13.1 問題:非同步初始化屬性
13.2 解決方案:基於 Promise 的建構函式
13.3 解決方案:靜態工廠方法
13.4 建立基於 Promise 的建構函式的子類別(選用)
13.5 結論
13.6 進一步閱讀
14 複製類別實例:
.clone()
與複製建構函式
14.1
.clone()
方法
14.2 靜態工廠方法
14.3 致謝
15 集合的不可變包裝器
15.1 包裝物件
15.2 Map 的不可變包裝器
15.3 陣列的不可變包裝器
VI 正規表示式
16 正規表示式:透過範例瞭解環顧斷言
16.1 秘笈:環顧斷言
16.2 本章節警告
16.3 範例:指定配對前或後的內容(正向環顧)
16.4 範例:指定配對前或後沒有的內容(負向環顧)
16.5 插曲:內向的指向性環顧斷言
16.6 範例:比對不以「abc」開頭的字串
16.7 範例:比對不包含「.mjs」的子字串
16.8 範例:略過包含註解的行
16.9 範例:智慧型引號
16.10 致謝
16.11 延伸閱讀
VII 其他主題
17 透過實作來探索 Promise
17.1 複習:Promise 的狀態
17.2 版本 1:獨立的 Promise
17.3 版本 2:串接 `.then()` 呼叫
17.4 便利方法 `.catch()`
17.5 省略反應
17.6 實作
17.7 版本 3:扁平化從 `.then()` 回呼傳回的 Promise
17.8 版本 4:反應回呼中引發的例外狀況
17.9 版本 5:揭露建構函式模式
18 使用 Proxy 進行元程式設計
18.1 概觀
18.2 程式設計與元程式設計
18.3 Proxy 說明
18.4 Proxy 的使用案例
18.5 Proxy API 的設計
18.6 常見問題:Proxy
18.7 參考:Proxy API
18.8 結論
18.9 延伸閱讀
19 其他章節在哪裡?