JavaScript修煉之路

張雲鵬、戚愛斌

  • 出版商: 清華大學
  • 出版日期: 2023-11-01
  • 定價: $1,014
  • 售價: 8.5$862
  • 語言: 簡體中文
  • 頁數: 714
  • 裝訂: 平裝
  • ISBN: 7302637903
  • ISBN-13: 9787302637905
  • 相關分類: JavaScript
  • 立即出貨

  • JavaScript修煉之路-preview-1
  • JavaScript修煉之路-preview-2
  • JavaScript修煉之路-preview-3
JavaScript修煉之路-preview-1

商品描述

本書系統地介紹了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的工程化項目開發,均使用完整的代碼案例和中文註釋說明,提供了圖文並茂的流程描述和完整的源代碼案例支持。 本書可作為Web前端初學者在具備一定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組織與ECMA262

 

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通過babelloader學習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創建pnrm項目結構

 

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