內容簡介
作者簡介
前言 PREFACE
第1章 簡介
1.1 發展歷史
1.2 ECMAScript提案流程
1.3 執行JavaScript
1.4 瀏覽器環境
1.5 Node.js環境
1.6 開發工具
1.7 基礎語法概覽
1.7.1 變數與數據類型
1.7.2 運算元
1.7.3 流程ㄇ控制
1.7.4 函式
1.8 嚴格模式
1.9 小結
第2章 基礎知識
2.1 程式結構
2.2 變數
2.2.1 定義變數
2.2.2 變數的命名規範
2.3 常量
2.3.1 定義常量
2.3.2 常量的命名規範
2.4 數據類型
2.4.1 typeof
2.4.2 Number類型
2.4.3 Boolean類型
2.4.4 String類型
2.4.5 Null與Undefined類型
2.4.6 Object類型
2.4.7 Symbol類型
2.4.8 BigInt類型
2.4.9 Array類型
2.4.10 基本類型的特點
2.5 數據類型轉換
2.5.1 隱式類型轉換
2.5.2 顯式類型轉換
2.6 小結
第3章 運算元
3.1 賦值運算元
3.2 數學運算元
3.2.1 一元數學運算元
3.2.2 二元數學運算元
3.2.3 計算順序與優先順序
3.3 比較運算元
3.4 邏輯運算元
3.5 Nullish Coalescing運算元
3.6 三目運算元
3.7 位運算元
3.7.1 與運算
3.7.2 或運算
3.7.3 異或運算
3.7.4 取反運算
3.7.5 左移運算
3.7.6 右移運算
3.7.7 補零右移運算
3.8 組合運算元
3.9 其他運算元
3.10 優先順序表
3.11 小結
第4章 流程控制
4.1 語句
4.2 if...else語句
4.3 if...else if...else語句
4.4 switch...case語句
4.5 while語句
4.6 do...while語句
4.7 for語句
4.8 break和continue語句
4.9 label語句
4.10 小結
第5章 函式
5.1 宣告函式
5.2 呼叫函式
5.3 函式表示式
5.4 箭頭函式
5.5 可選與預設引數
5.6 可變長度引數
5.6.1 arguments
5.6.2 rest運算元
5.7 回撥函式
5.8 作用域
5.8.1 全域性作用域
5.8.2 區域性作用域
5.8.3 提升機制
5.8.4 臨時隔離區
5.9 閉包
5.10 遞迴
5.11 高階函式
5.12 柯裡化
5.13 Memoization
5.14 純函式
5.15 小結
第6章 陣列
6.1 建立陣列
6.2 訪問陣列
6.3 修改元素
6.4 刪除元素
6.5 棧和佇列模式
6.6 陣列遍歷
6.7 陣列過濾和測試
6.8 陣列排序
6.9 陣列連線
6.10 陣列裁切
6.11 搜尋元素
6.12 陣列與字元串
6.13 陣列填充
6.14 陣列複製
6.15 扁平化
6.16 解構賦值
6.17 擴展語法
6.18 多維陣列
6.19 小結
第7章 對象
7.1 建立對象
7.1.1 簡化屬性
7.1.2 計算屬性名
7.2 訪問與新增對象屬性
7.3 遍歷對象屬性
7.4 刪除對象屬性
7.5 getters和setters
7.6 屬性描述符
7.6.1 配置屬性描述符
7.6.2 配置多個屬性描述符
7.6.3 獲取屬性描述符
7.6.4 不可擴展對象
7.7 原型
7.7.1 獲取原型對象
7.7.2 原型鏈
7.7.3 Object.create()
7.8 建構函式
7.8.1 定義
7.8.2 this
7.9 toString()和valueOf()
7.10 call()、apply()與bind()
7.10.1 call()
7.10.2 apply()
7.10.3 bind()
7.11 對象複製
7.12 解構賦值與rest運算元(對象)
7.13 with語句
7.14 值傳遞與引用傳遞
7.15 小結
第8章 對象導向基礎
8.1 簡介
8.2 建立類
8.2.1 定義建構函式
8.2.2 例項化對象
8.2.3 新增行為
8.2.4 注意事項
8.3 實現繼承
8.4 抽象類
8.5 成員變數
8.6 靜態成員
8.7 小結
第9章 字元串與正規表示式
9.1 字元串介紹
9.2 字元串遍歷
9.3 字元串操作
9.3.1 拼接
9.3.2 裁切
9.3.3 搜尋
9.3.4 分割
9.3.5 其他操作
9.4 模板字元串
9.5 正規表示式介紹
9.6 正規表示式語法
9.6.1 特殊字元匹配
9.6.2 匹配次數
9.6.3 區間、邏輯和界定符
9.6.4 分組
9.7 字元串中的正則
9.8 RegExp對象
9.9 常見的正規表示式
9.10 小結
第10章 內建對象
10.1 基本類型包裝對象
10.2 Math
10.3 Date
10.3.1 獲取日期
10.3.2 修改日期
10.3.3 解析日期
10.3.4 日期比較
10.4 JSON
10.4.1 序列化
10.4.2 反序列化
10.5 Set
10.6 Map
10.7 疊代器、可疊代對象和生成器
10.7.1 疊代器
10.7.2 可疊代對象
10.7.3 生成器與生成器函式
10.8 TypedArray
10.8.1 建立類型陣列
10.8.2 屬性和方法
10.9 Symbol
10.9.1 Symbol.match
10.9.2 Symbol.toStringTag
10.9.3 Symbol.isConcatSpreadable
10.9.4 Symbol.toPrimitive
10.9.5 Symbol.hasInstance
10.9.6 Symbol.species
10.10 Console
10.10.1 除錯
10.10.2 顯示
10.10.3 記錄
10.11 Reflect
10.12 Proxy
10.12.1 處理對象
10.12.2 不變性
10.12.3 可回收代理
10.13 小結
第11章 異常處理
11.1 捕獲異常
11.2 throw丟擲異常
11.3 Error對象
11.4 自定義異常
11.5 finally
11.6 捕獲多個異常
11.7 小結
第12章 非同步程式設計
12.1 setTimeout()
12.2 setInterval()
12.3 Promise
12.3.1 建立Promise
12.3.2 鏈式呼叫
12.3.3 處理異常
12.3.4 執行多個Promise
12.4 async/await
12.4.1 定義非同步函式
12.4.2 使用await
12.4.3 處理異常
12.5 非同步疊代
12.6 Event Loop
12.6.1 呼叫棧
12.6.2 Event Loop
12.7 小結
第13章 模組化
13.1 實現模組化的方式
13.2 模組化配置
13.2.1 匯出模組
13.2.2 匯入模組
13.2.3 預設匯出
13.2.4 別名匯入
13.2.5 再匯出
13.2.6 動態匯入
13.3 Node.js原生模組管理
13.4 小結
第14章 案例與總結
14.1 對象導向設計範例:線上服裝商城
14.1.1 需求
14.1.2 Clothing衣服類
14.1.3 Store商城類
14.1.4 User使用者類
14.1.5 Address地址類
14.1.6 Cart購物車類
14.1.7 Order訂單類
14.1.8 範例
14.2 函式語言程式設計範例:擴展陣列API
14.2.1 唯一元素
14.2.2 交集
14.2.3 並集
14.2.4 差集
14.2.5 對稱差集
14.2.6 求和
14.2.7 平均值
14.2.8 範圍
14.2.9 分割
14.2.10 頻次
14.2.11 匯出
14.2.12 呼叫範例
14.3 下一步規劃
14.3.1 前端
14.3.2 後端
14.3.3 特定領域
14.4 寫在最後