JavaScript 基礎語法詳解

JavaScript 基礎語法詳解

作者: 張旭乾
出版社: 清華大學
出版在: 2022-03-01
ISBN-13: 9787302589860
ISBN-10: 7302589860





內容描述


隨著 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寫在最後




相關書籍

Learn Microservices with Spring Boot: A Practical Approach to RESTful Services using RabbitMQ, Eureka, Ribbon, Zuul and Cucumber

作者 Moises Macero

2022-03-01

Jump Start PHP Environment (Paperback)

作者 Bruno Skvorc

2022-03-01

大數據測試技術 數據採集、分析與測試實踐(在線實驗+在線自測 )

作者 劉攀

2022-03-01