《JavaScript修煉之路》是2023年清華大學出版社出版的圖書,作者是張雲鵬、戚愛斌。
基本介紹
- 中文名:JavaScript修煉之路
- 作者:張雲鵬、戚愛斌
- 出版時間:2023年11月1日
- 出版社:清華大學出版社
- ISBN:9787302637905
- 定價:169 元
內容簡介,圖書目錄,
內容簡介
本書系統地介紹了JavaScript編程基礎、編程思想、瀏覽器套用開發、伺服器端套用開發、類型約束器、工程化開發、網路完全及簡單的數據結構和算法。全書共10章:第1章為JavaScript入門介紹,第2章為JavaScript面向對象編程,第3章為JavaScript的DOM和BOM,第4章為ECMAScript規範,第5章為JavaScript異步編程,第6章為JavaScript模組化編程,第7章為NPM包管理器攻略,第8章為基於類型約束器的JavaScript,第9章為網路安全與協定,第10章為前端常用的數據結構與算法。書中包含大量套用示例,從基礎入門到進階開發最終滲透到原理和實現。書中的開發示例基於VS Code開發工具和Chrome瀏覽器實現,書中從JavaScript基礎到JavaScript的工程化項目開發,均使用完整的代碼案例和中文注釋說明,提供了圖文並茂的流程描述和完整的原始碼案例支持。
圖書目錄
目錄
本書原始碼
第1章鍛體篇——認識JavaScript程式語言
1.1開啟修煉之路
1.1.1修煉與編程的共同點
1.1.2JavaScript介紹
1.2JavaScript入門
1.2.1運行環境介紹
1.2.2Chrome Devtools介紹
1.3變數和數據類型
1.3.1變數的聲明
1.3.2數據類型的劃分
1.3.3基本類型與引用類型
1.4常用運算符
1.4.1算術運算符
1.4.2賦值運算符與字元串運算符
1.4.3比較運算符
1.4.4條件運算符
1.4.5邏輯運算符
1.4.6位運算符
1.5常用流程結構
1.5.1選擇結構
1.5.2循環結構
1.5.3初探JSON對象和數組對象及其遍歷方式
1.5.4異常處理
1.6JavaScript函式介紹
1.6.1函式的結構和用途
1.6.2變數與作用域
1.6.3閉包與作用域鏈
1.6.4函式的其他使用場景
第2章練氣篇——JavaScript面向對象編程
2.1面向對象入門
2.1.1類與對象
2.1.2對象實例化套用
2.1.3原型對象prototype
2.1.4原型鏈與繼承
2.1.5淺複製與深複製
2.2JavaScript內置對象
2.2.1Array對象
2.2.2Boolean對象
2.2.3Date對象
2.2.4Math對象
2.2.5Number對象
2.2.6String對象
2.2.7RegExp對象
2.3瀏覽器對象
2.3.1window對象
2.3.2navigator對象
2.3.3location對象
2.3.4存儲對象
2.3.5定時器
2.4Object對象詳細講解
2.4.1Object.assign()方法
2.4.2Object.is()方法
2.4.3Object.values()方法
2.4.4Object.entries()方法
2.4.5Object.fromEntries()方法
2.4.6Object.defineProperty()方法
2.5嚴格模式介紹
2.5.1調用嚴格模式
2.5.2嚴格模式中的變化
第3章築基篇——DOM
3.1DOM基礎介紹
3.1.1獲取HTML節點對象
3.1.2改變HTML屬性和內容
3.1.3改變CSS樣式
3.1.4DOM對象的增刪操作
3.1.5DOM操作練習
3.2DOM事件綁定
3.2.1事件系統介紹
3.2.2常用事件綁定方式
3.2.3事件捕獲和事件冒泡
3.2.4事件傳播的原理與事件的靈活運用
3.3防抖和節流
3.3.1debounce防抖
3.3.2throttle節流
3.4HTMLCollection對象與NodeList對象
3.4.1HTMLCollection對象
3.4.2NodeList對象
3.5DOM操作綜合實戰
3.5.1開發一個登錄頁面
3.5.2登錄頁面的表單校驗及背景圖片的定時切換
3.5.3常規管理系統首頁搭建
3.5.4訪問許可權控制和登錄過期
3.5.5Cookie對象簡介
第4章結丹篇——ECMAScript 6
4.1ECMA介紹
4.1.1ECMA組織與ECMA262
4.1.2ECMAScript發展史
4.2新的聲明方式與作用域規則
4.2.1新的聲明符號let
4.2.2新的聲明符號const
4.3箭頭函式與普通函式
4.3.1箭頭函式介紹
4.3.2箭頭函式與function函式的區別
4.4class對象
4.4.1class對象與function對象的區別
4.4.2class對象的繼承
4.4.3屬性、靜態屬性及私有屬性
4.5ES6+的其他新特性
4.5.1數組的解構賦值
4.5.2對象的解構賦值
4.5.3模板字元串
4.5.4Set與Map
4.6Proxy與Reflect
4.6.1Proxy對象
4.6.2Reflect對象
第5章元嬰篇——JavaScript異步編程
5.1初識異步編程
5.1.1什麼是同步和異步
5.1.2深入探索同步和異步
5.1.3異步與多執行緒的區別
5.2初識異步編程
5.2.1瀏覽器的執行緒組成
5.2.2執行緒間的工作關係
5.2.3JavaScript的運行模型
5.3EventLoop與異步任務佇列
5.3.1異步任務的去向與EventLoop的工作原理
5.3.2關於函式執行棧
5.3.3遞歸和棧溢出
5.4異步流程控制
5.4.1宏任務與微任務
5.4.2流程控制的銀彈——Promise
5.4.3回調函式與Promise對象
5.4.4Promise對象套用詳細講解
5.4.5鏈式調用及其他常用API
5.4.6異步代碼同步化
5.5手撕Promise對象
5.5.1定義一個Promise對象
5.5.2實現then()的回調函式
5.5.3實現catch()的完整功能
5.5.4其他常用功能的實現
第6章化神篇——JavaScript模組化編程
6.1JavaScript模組化發展歷程
6.1.1無模組化時代的依賴管理
6.1.2JavaScript模組化的出現及發展
6.2Node.js及其模組系統
6.2.1Node.js的快速上手
6.2.2Node.js介紹
6.2.3Node.js的常用API
6.2.4NPM初探
6.2.5基於Node.js開發靜態資源伺服器
6.3工程化利器Webpack
6.3.1Webpack入門
6.3.2認識Webpack的Loader
6.3.3通過babelloader學習Loader的使用
6.3.4Webpack中的Plugin
6.3.5Webpack項目的樣式處理
6.4基於Webpack的前端腳手架搭建
6.4.1創建一個區分開發環境與生產環境的項目
6.4.2構建生產環境與開發環境
6.4.3集成babel與CSS預處理器
6.4.4項目必備配置項
6.4.5集成個性化功能
第7章還虛篇——NPM包管理器全攻略
7.1包管理器NPM介紹
7.1.1NPM的基本使用
7.1.2鏡像網址管理
7.1.3學習npm config命令
7.2企業級NPM包管理器實戰
7.2.1初始化工程化項目
7.2.2依賴管理介紹
7.2.3NPM的依賴載入規則
7.2.4bin屬性的作用
7.2.5scripts屬性的作用
7.2.6NPM的發布配置
7.3本地NPM私服搭建
7.3.1為什麼需要NPM私服
7.3.2搭建本地NPM私服
7.4仿真nrm工具
7.4.1創建pnrm項目結構
7.4.2仿真實現nrm包的功能
7.4.3編寫測試用例
第8章合道篇——基於類型約束器的JavaScript
8.1靜態類型的JavaScript
8.1.1什麼是靜態類型
8.1.2Flow的出現
8.1.3什麼是TypeScript
8.1.4TypeScript的環境搭建
8.2TypeScript語法入門
8.2.1基本類型與引用類型
8.2.2函式、interface與范型
8.3TypeScript高級套用
8.3.1裝飾器
8.3.2模組和命名空間
8.3.3*.d.ts檔案的使用
8.4基於TypeScript的前端項目實戰
8.4.1使用Vite初始化Vue 3+TypeScript項目
8.4.2集成ElementPlus框架
8.4.3集成路由功能
8.4.4集成狀態管理器Pinia
8.5基於TypeScript的前後端分離項目
8.5.1基於NestJS的伺服器端項目搭建
8.5.2基於Vue 3+ElementPlus搭建前端登錄頁面
8.5.3開發伺服器端登錄接口
8.5.4實現完整的登錄功能
第9章大乘篇——網路安全與協定
9.1客戶端腳本攻擊
9.1.1跨站腳本攻擊XSS
9.1.2XSS攻擊的案例1——MVC注入
9.1.3XSS攻擊的案例2——超連結與圖片注入
9.1.4XSS的攻防思想
9.2CSRF和單擊劫持
9.2.1CSRF漏洞
9.2.2單擊劫持
9.3常見伺服器端攻擊
9.3.1SQL注入攻擊
9.3.2檔案上傳漏洞
9.4DDoS攻擊詳細講解
9.4.1DDoS簡介
9.4.2DDoS攻擊的防禦策略
9.4.3資源耗盡攻擊
9.5前端常見網路協定常識
9.5.1從輸入域名到網頁展示經歷了什麼樣的過程
9.5.2HTTP的發展歷程
9.5.3HTTP快取
第10章歸初篇——前端常用的數據結構與算法入門
10.1簡單數據結構示例
10.1.1數組和鍊表
10.1.2二叉樹結構及其遍歷思想
10.1.3遞歸與循環實現二叉樹的遍歷
10.1.4二叉查找樹
10.2幾種常見的插入排序算法
10.2.1圖解直接插入排序
10.2.2圖解二分插入排序
10.2.3圖解希爾排序
10.3圖解常用經典排序
10.3.1圖解快速排序
10.3.2圖解歸併排序
10.3.3圖解堆排序
10.4實現HTML語法解釋器
10.4.1回顧HTML基礎
10.4.2揭秘HTML解釋器
10.4.3從詞法分析到DOM樹的構建
10.4.4家庭作業——反向生成HTML