JavaScript實用教程
內容描述
JavaScript在日常開發工作中使用頻率非常高。本書從JavaScript初學者的視角出發,將理論和實踐相結合,通過循序漸進、由淺入深的方式詳解JavaScript核心知識點,讓讀者在學習的過程中不斷提升使用JavaScript的技能水平,並能夠將所學知識運用到實際開發當中去。 本書分為4部分,共12章,主要內容包括JavaScript語法基礎、JavaScript流程控制、數組、函數、作用域、對象和內置對象、BOM、DOM和事件、JavaScript面向對象編程、函數進階、正則表達式、貪吃蛇案例、ES6~ES10特性和TypeScript。 本書適合所有Web技術從業人員、前端開發工程師,也適合作為高等院校和培訓機構電腦及相關專業師生的教學參考書。
目錄大綱
內容簡介
前言
第1部分JavaScript基礎
第1章JavaScript語法基礎
1.1基本概念和開發工具
1.1.1計算機程序
1.1.2計算機語言
1.1.3編程語言
1.1.4翻譯器
1.1.5編程語言和標記語言的區別
1.1.6計算機基礎
1.1.7瀏覽器
1.1.8網頁、網站和應用程序
1.1.9開發工具
1.2 JavaScript是什麼
1.2.1 JavaScript語言特點
1.2.2編譯語言和腳本語言的對比
1.2.3 JavaScript應用場景
1.2.4 JavaScript與瀏覽器的關係
1.2.5 JavaScript的組成
1.3初次體驗JavaScript代碼
1.3.1注意事項
1.3.2代碼註釋
1.4變量
1.4.1變量引入、聲明和初始化
1.4.2變量在內存中的存儲
1.4.3變量的命名規則和規範
1.5數據類型
1.5.1 number類型
1.5.2進制介紹(了解)
1.5.3 string類型
1.5.4 boolean類型
1.5.5 undefined和null
1.5.6數據類型轉換
1.5.7字面量
1.5.8獲取變量的類型
1.5.9複雜數據類型object
1.6運算符
1.6.1算術運算符
1.6.2一元運算符
1.6.3邏輯運算符
1.6.4關係運算符
1.6.5賦值運算符
1.6.6運算符的優先級
第2章JavaScript流程控制
2.1順序結構
2.2分支結構
2.2.1 if語句
2.2.2三元運算符
2.2.3 switch語句
2.2.4分支語句總結
2.2.5布爾類型的隱式轉換
2.3循環結構
2.3.1 while語句
2.3.2 do-while語句
2.3.3 for語句
2.3.4 continue和break
2.4調試
第3章數組、函數、作用域
3.1數組
3.1.1為什麼要學習數組
3.1.2數組的概念
3.1.3數組的定義
3.1.4獲取數組元素
3.1.5遍歷數組
3.1.6數組中新增元素
3.1.7數組案例
3.2函數
3.2.1為什麼要有函數
3.2.2什麼是函數
3.2.3函數的聲明
3.2.4函數的調用
3.2.5函數的參數
3.2.6函數的返回值
3.2.7 arguments的使用
3.2.8匿名函數
3.2.9自調用函數
3.2.10函數的數據類型
3.3作用域
3.3.1全局變量和局部變量
3.3.2塊級作用域
3.3.3詞法作用域
3.3.4作用域鏈
3.3 .5變量提升
3.3.6預解析
第4章對象和內置對象
4.1對象
4.1.1為什麼要有對象
4.1.2什麼是對象
4.1.3 JavaScript中的對象
4.1.4對象創建方式
4.1.5屬性和方法
4.1.6 new關鍵字
4.1.7 this關鍵字
4.1.8對像操作
4.2基本類型和復雜類型
4.2.1堆和棧
4.2.2值類型在內存中的存儲
4.2.3引用類型在內存中的存儲
4.2 .4將值類型作為函數的參數
4.2.5將引用類型作為函數的參數
4.3內置對象
4.3.1 Math對象
4.3.2 Date對象
4.3.3 Array對象
4.3.4基本包裝類型
4.3.5 String對象
4.3.6 Number對象
4.3.7 Boolean對象
第2部分Web API
第5章BOM
5.1 BOM簡介
5.1.1 BOM的概念
5.1.2 BOM的頂級對象Window
5.2對話框
5.2.1 alert()
5.2.2 prompt()
5.2.3 confirm()
5.3頁面加載事件
5.4定時器
5.5 Location對象
5.6 History對象
5.7 Navigator對象
第6章DOM和事件
6.1 DOM
6.1.1 DOM的概念
6.1.2模擬文檔樹結構
6.1.3獲取DOM元素
6.2事件
6.3屬性操作
6.3.1非表單元素屬性
6.3.2 innerText、textContent
6.3.3 innerHTML和innerText的區別
6.3.4表單元素屬性
6.3.5自定義屬性操作
6.3.6樣式操作
6.3.7類名操作
6.3.8創建元素的三種方式
6.4節點操作7.2.6構造函數和對象的關係
6.4.1節點的基本操作
6.4.2節點屬性操作
6.4.3節點層級
6.5事件詳解
6.5.1註冊/移除事件的三種方式
6.5.2事件冒泡
6.5.3事件的三個階段
6.5.4事件對象的屬性和方法
6.6偏移量
6.6.1獲取元素:offset系列
6.6.2可視區域:client系列
6.6.3滾動偏移:scroll系列
6.7綜合案例
6.7.1輪播圖
6.7.2固定導航欄
6.7.3導航欄特效
第3部分JavaScript進階
第7章JavaScript面向對象編程
7.1面向對像簡介
7.2創建對象的方式
7.2.1以字面量的方式創建對象
7.2.2通過調用系統的構造函數來創建對象
7.2.3通過自定義構造函數來創建對象
7.2.4以工廠模式創建對象
7.2.5工廠模式和自定義構造函數創建對象的區別
7.3原型的引入
7.4面向過程和麵向對象
7.5構造函數、原型對象、實例對象之間的關係
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通過一個HTML的元素對象來查看原型鏈
7.8實現繼承
7.8.1原型實現繼承
7.8.2構造函數實現繼承
7.8.3組合繼承
7.8.4拷貝繼承
第8章函數進階和其他
8.1函數的定義方式
8.2函數的調用方式
8.2.1函數內this指向的不同場景
8.2.2嚴格模式
8.2.3函數也是對象
8.2.4數組中函數的調用
8.2.5 apply和call調用
8.2.6 bind方法
8.2.7 call、apply和bind的區別
8.3函數中自帶的屬性
8.4將函數作為參數使用
8.5將函數作為返回值使用
8.6作用域和作用域鏈
8.7閉包
8.8沙箱模式
8.9遞歸
8.10淺拷貝和深拷貝
8.11遞歸案例
8.11.1遍歷DOM樹
8.11 .2生成菜單導航
8.12偽數組和數組
8.13 JavaScript垃圾回收機制
8.13.1可訪問性
8.13.2一個簡單的示例
8.13.3兩個引用
8.13.4相互引用的對象
8.13.5孤島
8.13.6內部算法
第9章正則表達式
9.1正則表達式簡介
9.1.1正則表達式的概念
9.1.2正則表達式的作用
9.1.3正則表達式的特點
9.1.4正則表達式的組成
9.1.5常用案例
9.1.6如何驗證正則表達式的正確性
9.2在JavaScript中使用正則表達式
9.2.1創建正則對象
9.2.2正則匹配
9.2.3正則提取
9.2.4正則替換
9.3正則表達式使用案例
9.3.1密碼強度驗證
9.3.2表單驗證
第10章貪吃蛇案例
10.1案例介紹
10.2實現步驟
10.2.2封裝食物對象
10.2.3封裝小蛇對象
10.2.4封裝遊戲對象
10.2.5遊戲調用
第4部分JavaScript下一代標準
第11章ES6~ES10新特性11.1 ES6新特性
10.2.1畫地圖和操作按鈕
11.1.1箭頭函數
11.1.2 const和let
11.1.3模板字符串
11.1.4函數的參數默認值
11.1.5延展操作符
11.1.6對象解構
11.1.7 for-of和for-in
11.1.8對象屬性簡寫
11.1.9 Promise
11.1.10 class
11.1.11模塊化
11.2 ES7新特性
11.2.1 Array.prototype.includes()
11.2.2指數操作符**
11.3 ES8新特性
11.3.1 async和await
11.3.2 Object.values/Object.entries
11.3.3 padStart和padEnd
11.4 ES9新特性
11.4.1 for await-of
11.4.2 Object Rest Spread 11.4.4新的正則表達式特性11.5 ES10新特性11.5.1 Array.prototype. flat() 11.5.2 Array.prototype.flatMap() 11.5.3 String.trimStart和String.trimEnd 11.5.4 String.prototype.matchAll
11.4.3 Promise.prototype.finally()
11.5.5修改catch綁定
11.5.6新的基本數據類型BigInt
11.5.7 Object.fromEntries()
11.5.8 Symbol.prototype.description
11.5.9 Function.prototype.toString()
第12章TypeScript
12.1 TypeScript簡介
12.1 .1安裝TypeScript
12.1.2開始我們的第一個TypeScript程序
12.1.3類型註解
12.1.4接口
12.1.5類
12.2 TypeScript基礎類型
12.2.1元組
12.2.2枚舉
12.2.3任意值
12.2.4空值
12.2.5 null和undefined
12.2.6 never
12.2.7類型斷言
12.3總結