JavaScript 基礎語法詳解
內容描述
隨著 JavaScript 逐漸成為通用的編程語言,它在軟件開發中的地位越來越高,已經不再只是給 HTML 編寫交互的客戶端腳本語言了,而是可以勝任前端、後端、大數據和機器學習等應用的全面語言。 JavaScript 從 2015 年以來走向規範化後,新出了很多新特性,而市面上少有書籍介紹它們,所以本書對ES6 到 ES2021 的新特性作了較為詳盡和深入的介紹,並且全書的語法可以適應各端開發人員所需。
本書共 14 章,涵蓋了 JavaScript 的發展歷史、運行環境、基礎語法、運算符、數組、函數式編程、面向對象基礎、原型鏈、異步編程、Event Loop、模塊化、迭代器和生成器、Symbol、Reflect 和 Proxy 的概念和使用方法,每個章節都有配套的示例,對於較難理解的部分還會提供視頻講解,旨在讓讀者真正掌握這些語法和新特性,在以後的開發過程中不再有基礎語法上的疑問。最後給出了兩個 JavaScript 綜合案例,分別使用面向對象編程風格和函數式編程風格,以掌握 JavaScript 的不同開發範式。
本書非常適合有其他編程語言基礎或對 JavaScript 語言有初步瞭解的工程師閱讀,如果是初學者,也可以通過仔細閱讀加練習達到完全掌握的目的。
目錄大綱
目錄
第1章簡介
1.1發展歷史
1.2ECMAScript提案流程
1.3運行JavaScript
1.4瀏覽器環境
1.5Node.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.1typeof
2.4.2Number類型
2.4.3Boolean類型
2.4.4String類型
2.4.5Null與Undefined類型
2.4.6Object類型
2.4.7Symbol類型
2.4.8BigInt類型
2.4.9Array類型
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.5Nullish 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.2if...else語句
4.3if...else if...else語句
4.4switch...case語句
4.5while語句
4.6do...while語句
4.7for語句
4.8break和continue語句
4.9label語句
4.10小結
第5章函數
5.1聲明函數
5.2調用函數
5.3函數表達式
5.4箭頭函數
5.5可選與默認參數
5.6可變長度參數
5.6.1arguments
5.6.2rest運算符
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.13Memoization
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.5getters和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.3Object.create()
7.8構造函數
7.8.1定義
7.8.2this
7.9toString()和valueOf()
7.10call()、apply()與 bind()
7.10.1call()
7.10.2apply()
7.10.3bind()
7.11對象復制
7.12解構賦值與rest運算符(對象)
7.13with語句
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.8RegExp對象
9.9常見的正則表達式
9.10小結
第10章內置對象
10.1基本類型包裝對象
10.2Math
10.3Date
10.3.1獲取日期
10.3.2修改日期
10.3.3解析日期
10.3.4日期比較
10.4JSON
10.4.1序列化
10.4.2反序列化
10.5Set
10.6Map
10.7迭代器、可迭代對象和生成器
10.7.1迭代器
10.7.2可迭代對象
10.7.3生成器與生成器函數
10.8TypedArray
10.8.1創建類型數組
10.8.2屬性和方法
10.9Symbol
10.9.1Symbol.match
10.9.2Symbol.toStringTag
10.9.3Symbol.isConcatSpreadable
10.9.4Symbol.toPrimitive
10.9.5Symbol.hasInstance
10.9.6Symbol.species
10.10Console
10.10.1調試
10.10.2顯示
10.10.3記錄
10.11Reflect
10.12Proxy
10.12.1處理對象
10.12.2不變性
10.12.3可回收代理
10.13小結
第11章異常處理
11.1捕獲異常
11.2throw拋出異常
11.3Error對象
11.4自定義異常
11.5finally
11.6捕獲多個異常
11.7小結
第12章異步編程
12.1setTimeout()
12.2setInterval()
12.3Promise
12.3.1創建Promise
12.3.2鏈式調用
12.3.3處理異常
12.3.4執行多個Promise
12.4async/await
12.4.1定義異步函數
12.4.2使用await
12.4.3處理異常
12.5異步迭代
12.6Event Loop
12.6.1調用棧
12.6.2Event 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.3Node.js原生模塊管理
13.4小結
第14章案例與總結
14.1面向對象設計示例: 線上服裝商城
14.1.1需求
14.1.2Clothing衣服類
14.1.3Store商城類
14.1.4User用戶類
14.1.5Address地址類
14.1.6Cart購物車類
14.1.7Order訂單類
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寫在最後