- CH1 ECMAScript 和 JavaScript 的未來
- 1.1 JavaScript 標準的發展概述
- 1.2 ECMAScript 是一個持續更新的標準
- 1.3 瀏覽器支援度和輔助工具
- 1.3.1 Babel 轉譯器簡介
- 1.3.2 程式碼品質和一致性與 ESLint 工具
- 1.4 ES6 中的特徵功能主題
- 1.5 JavaScript 的未來
- CH2 ES6基礎元素
- 2.1 物件實字
- 2.1.1 特性值指定簡化語法
- 2.1.2 運算取得的特性名稱
- 2.1.3 方法的定義
- 2.2 箭頭函式
- 2.2.1 語彙範圍
- 2.2.2 描述箭頭函式的其他方法
- 2.2.3 優點和使用情境
- 2.3 解構函式
- 2.3.1 物件解構賦值
- 2.3.2 陣列解構賦值
- 2.3.3 函數參數指定初始值
- 2.3.4 函式參數解構賦值
- 2.3.5 解構賦值的使用情境
- 2.4 其餘參數和展開運算子
- 2.4.1 其餘參數
- 2.4.2 展開運算子
- 2.5 字串樣板
- 2.5.1 字串插值
- 2.5.2 多行文字字串樣板
- 2.5.3 標籤樣板
- 2.6 let 和 const 敘述
- 2.6.1 區塊作用域與 let 敘述句
- 2.6.2 暫時性死區
- 2.6.3 const 敘述
- 2.6.4 let 與 const 敘述的優點
- 2.1 物件實字
- CH3 類別、符號、物件和修飾器
- 3.1 類別
- 3.1.1 類別基本元素
- 3.1.2 類別中的特性與方法
- 3.1.3 延伸 JavaScript 類別
- 3.2 符號
- 3.2.1 區域符號
- 3.2.2 符號的實際案例
- 3.2.3 全域符號註冊表
- 3.2.4 通用符號
- 3.3 物件的內建功能強化
- 3.3.1 運用 Object.assign 延伸物件
- 3.3.2 運用 Object.is 比較兩物件
- 3.3.3 Object.setPrototypeOf
- 3.4 修飾器
- 3.4.1 初談 JavaScript 修飾器
- 3.4.2 修飾器堆疊和不可變更性的警示
- 3.4.3 使用案例:C# 的 Attributes
- 3.4.4 於 JavaScript 中標記特性
- 3.1 類別
- CH4 迭代和流程控制
- 4.1 Promise
- 4.1.1 開始學習 Promise
- 4.1.2 Promise 物件的再開始和鏈結
- 4.1.3 從頭開始建立一個 Promise
- 4.1.4 Promise 狀態和結果
- 4.1.5 Promise#finally 提案
- 4.1.6 善用 Promise.all 和 Promise.race
- 4.2 迭代器協議和可迭代協議
- 4.2.1 瞭解迭代原則
- 4.2.2 無限量的序列
- 4.2.3 以鍵/值配對的方式對物件映射進行迭代
- 4.2.4 為播放清單的迭代行為增加彈性
- 4.3 產生器函式和產生器物件
- 4.3.1 產生器基礎元素
- 4.3.2 手動迭代產生器
- 4.3.3 於可迭代物件加入產生器
- 4.3.4 利用產生器巡訪樹狀結構資料
- 4.3.5 利用產生器函式增加彈性
- 4.3.6 非同步流程的處理
- 4.3.7 產生器拋出錯誤
- 4.3.8 代表產生器進行回傳
- 4.3.9 運用產生器操作非同步IO
- 4.4 非同步函式
- 4.4.1 非同步程式的意義
- 4.4.2 使用 async/await
- 4.4.3 同時發生的非同步流程
- 4.4.4 錯誤處理
- 4.4.5 瞭解非同步函式的內部運作
- 4.5 非同步迭代
- 4.5.1 非同步迭代器
- 4.5.2 非同步產生器
- 4.1 Promise
- CH5 運用 ECMAScript 集合
- 5.1 運用 ES6 的映射
- 5.1.1 初探 ES6 映射
- 5.1.2 Hash-map 雜湊表和 DOM
- 5.2 瞭解並運用弱映射
- 5.2.1 弱映射是一個糟糕的映射?
- 5.3 ES6 的集合
- 5.4 ES6 的弱集合
- 5.1 運用 ES6 的映射
- CH6 運用代理器管理特性存取
- 6.1 代理器初探
- 6.1.1 定義 get 機關攔截擷取操作
- 6.1.2 定義 set 機關攔截設定操作
- 6.1.3 以代理器進行格式驗證
- 6.2 可廢止的代理器
- 6.3 代理器機關處理器
- 6.3.1 是否設定機關 - has
- 6.3.2 deleteProperty 機關
- 6.3.3 defineProperty 機關
- 6.3.4 ownKeys 機關
- 6.4 進階的代理器機關
- 6.4.1 getOwnPropertyDescriptor 機關
- 6.4.2 apply 機關
- 6.4.3 construct 機關
- 6.4.4 getPrototypeOf 機關
- 6.4.5 setPrototypeOf 機關
- 6.4.6 preventExtensions 機關
- 6.4.7 isExtensions 機關
- 6.1 代理器初探
- CH7 ES6 內建功能優化
- 7.1 數值
- 7.1.1 二進位和八進位實字
- 7.1.2 Number.isNaN
- 7.1.3 Number.isFinite
- 7.1.4 Number.parseInt
- 7.1.5 Number.parseFloat
- 7.1.6 Number.isInteger
- 7.1.7 Number.EPSILON
- 7.1.8 Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER
- 7.1.9 Number.isSafeInteger
- 7.2 Math 物件
- 7.2.1 Math.sign
- 7.2.2 Math.trunc
- 7.2.3 Math.cbrt
- 7.2.4 Math.expm1
- 7.2.5 Math.log1p
- 7.2.6 Math.log10
- 7.2.7 Math.log2
- 7.2.8 三角函數
- 7.2.9 Math.hypot
- 7.2.10 位元運算輔助器
- 7.3 字串和萬國碼
- 7.3.1 String#startsWith
- 7.3.2 String#endsWith
- 7.3.3 String#includes
- 7.3.4 String#repeat
- 7.3.5 字串補足與修整
- 7.3.6 萬國碼
- 7.3.7 String.prototype[Symbol.iterator]
- 7.3.8 分辨字元符號叢集提案
- 7.3.9 String#codePointAt
- 7.3.10 String.fromCodePoint
- 7.3.11 萬國碼感知的字串返回法
- 7.3.12 String#normalize
- 7.4 正規表示式
- 7.4.1 黏著度比對模式 /y
- 7.4.2 萬國碼比對模式 /u
- 7.4.3 命名匹配群組
- 7.4.4 萬國碼特性跳脫
- 7.4.5 左合子樣式
- 7.4.6 全新的 /s "dotAll" 樣式
- 7.4.7 String#matchAll
- 7.5 陣列
- 7.5.1 Array.from
- 7.5.2 Array.of
- 7.5.3 Array#copyWithin
- 7.5.4 Array#fill
- 7.5.5 Array#find 和 Array#findIndex
- 7.5.6 Array#keys
- 7.5.7 Array#values
- 7.5.8 Array#entries
- 7.5.9 Array.prototype[Symbol.iterator]
- 7.1 數值
- CH8 JavaScript 模組
- 8.1 CommonJS
- 8.2 JavaScript 模組
- 8.2.1 嚴格模式
- 8.2.2 export 輸出敘述
- 8.2.3 import 載入敘述
- 8.2.4 動態 import()
- 8.3 ES 模組操作的實務考量
- CH9 實務操作的考量
- 9.1 變數宣告
- 9.2 字串樣板
- 9.3 簡化語法與物件解構賦值
- 9.4 其餘與展開運算
- 9.5 探究各類函式宣告方式
- 9.6 類別與代理器
- 9.7 非同步程式流程
- 9.8 複雜性、抽象化與規範
billy0402/javascript-practical-modern
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|