JavaScript快速入門(mén)與開(kāi)發(fā)實(shí)戰(zhàn)
定 價(jià):89 元
- 作者:郭超 著
- 出版時(shí)間:2024/5/1
- ISBN:9787122433725
- 出 版 社:化學(xué)工業(yè)出版社
- 中圖法分類(lèi):TP312.8
- 頁(yè)碼:268
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)分14章對(duì)JavaScript編程語(yǔ)言展開(kāi)介紹,從JavaScript發(fā)展歷史到基本語(yǔ)法、面向?qū)ο缶幊、程序調(diào)試、DOM操作、BOM操作,最后到JavaScript高級(jí)應(yīng)用,還有ES6新特性、Promise異步編程和模塊化開(kāi)發(fā)等技術(shù)內(nèi)容,全方位系統(tǒng)地介紹了作為一名前端開(kāi)發(fā)人員所必須要掌握的JavaScript內(nèi)容。
如果您有過(guò)JavaScript的開(kāi)發(fā)經(jīng)驗(yàn),相信您讀完這本書(shū)也會(huì)糾正個(gè)人技術(shù)認(rèn)知上的部分誤區(qū),如果您是一位初學(xué)者,本書(shū)也同樣適合您,不過(guò)需要您把學(xué)習(xí)本書(shū)看作是一個(gè)長(zhǎng)期任務(wù),可以根據(jù)書(shū)中的編寫(xiě)案例認(rèn)認(rèn)真真地加以練習(xí)總結(jié),相信在不久后同樣可以深入掌握J(rèn)avaScript。
第1章 JavaScript入門(mén) 001
1.1 初識(shí)JavaScript 001
1.1.1 JavaScript的發(fā)展歷史 001
1.1.2 JavaScript的特點(diǎn) 002
1.1.3 JavaScript的應(yīng)用場(chǎng)景 002
1.1.4 JavaScript的開(kāi)發(fā)工具 002
1.2 JavaScript的組成 003
小結(jié) 004
第2章 在網(wǎng)頁(yè)中使用JavaScript 005
2.1 行內(nèi)方式 005
2.1.1 通過(guò)“JavaScript:”調(diào)用函數(shù) 005
2.1.2 在事件屬性中調(diào)用函數(shù) 005
2.2 內(nèi)嵌方式 006
2.3 鏈接外部JavaScript文件方式 006
小結(jié) 006
第3章 JavaScript基本語(yǔ)法 007
3.1 變量 007
3.1.1 概述 007
3.1.2 變量的使用 007
3.1.3 變量的重新賦值 008
3.1.4 變量使用注意事項(xiàng) 008
3.1.5 變量命名規(guī)范 009
3.1.6 案例:兩個(gè)變量的交換 009
3.2 數(shù)據(jù)類(lèi)型 010
3.2.1 概述 010
3.2.2 數(shù)據(jù)類(lèi)型的分類(lèi) 010
3.2.3 數(shù)字類(lèi)型 010
3.2.4 字符串類(lèi)型 011
3.2.5 布爾類(lèi)型 012
3.2.6 Null類(lèi)型 012
3.2.7 Undefined類(lèi)型 013
3.2.8 typeof關(guān)鍵字 013
3.3 數(shù)據(jù)類(lèi)型轉(zhuǎn)換 014
3.3.1 概述 014
3.3.2 顯式類(lèi)型轉(zhuǎn)換 014
3.3.3 隱式類(lèi)型轉(zhuǎn)換 015
3.4 運(yùn)算符 016
3.4.1 概述 016
3.4.2 算術(shù)運(yùn)算符 016
3.4.3 關(guān)系運(yùn)算符 017
3.4.4 邏輯運(yùn)算符 018
3.4.5 賦值運(yùn)算符 019
3.4.6 三目運(yùn)算符 020
3.4.7 運(yùn)算符的優(yōu)先級(jí) 020
3.5 注釋 021
3.5.1 概述 021
3.5.2 單行注釋 021
3.5.3 多行注釋 021
3.6 輸入輸出語(yǔ)句 021
3.6.1 說(shuō)明 021
3.6.2 輸入 021
3.6.3 輸出 022
3.7 任務(wù)練習(xí) 022
小結(jié) 023
第4章 程序結(jié)構(gòu) 024
4.1 順序結(jié)構(gòu) 024
4.2 選擇結(jié)構(gòu) 024
4.2.1 if結(jié)構(gòu) 025
4.2.2 if...else...結(jié)構(gòu) 026
4.2.3 if...else if...else結(jié)構(gòu) 027
4.2.4 switch結(jié)構(gòu) 029
4.2.5 條件嵌套 031
4.2.6 多分支選擇結(jié)構(gòu)和switch對(duì)比 032
4.3 循環(huán)結(jié)構(gòu) 032
4.3.1 for循環(huán) 032
4.3.2 while循環(huán) 033
4.3.3 do...while循環(huán) 034
4.3.4 for和while的對(duì)比 035
4.3.5 while和do...while的對(duì)比 035
4.3.6 循環(huán)嵌套 036
4.4 跳轉(zhuǎn)語(yǔ)句 037
4.4.1 break語(yǔ)句 037
4.4.2 continue語(yǔ)句 038
4.5 任務(wù)練習(xí) 038
小結(jié) 039
第5章 數(shù)組 040
5.1 概述 040
5.2 定義數(shù)組 041
5.2.1 構(gòu)造數(shù)組 041
5.2.2 數(shù)組字面量 041
5.3 訪問(wèn)數(shù)組 041
5.3.1 數(shù)組下標(biāo) 041
5.3.2 數(shù)組長(zhǎng)度 042
5.4 數(shù)組遍歷 043
5.4.1 for循環(huán)索引方式 043
5.4.2 for...in方式 043
5.4.3 for...of方式 044
5.5 數(shù)組的常見(jiàn)操作 044
5.5.1 求數(shù)組最大值 044
5.5.2 兩個(gè)數(shù)組合并 045
5.5.3 數(shù)組篩選 045
5.5.4 數(shù)組翻轉(zhuǎn) 046
5.5.5 對(duì)數(shù)組元素去重 047
小結(jié) 047
第6章 程序調(diào)試及常見(jiàn)錯(cuò)誤 048
6.1 為什么要進(jìn)行程序調(diào)試 048
6.2 常見(jiàn)的程序調(diào)試方式 048
6.2.1 使用alert方法調(diào)試 048
6.2.2 使用log方法調(diào)試 049
6.3 Sources斷點(diǎn)調(diào)試 051
6.3.1 斷點(diǎn)調(diào)試概述 051
6.3.2 常用的調(diào)試按鈕 052
6.3.3 Watch監(jiān)視器的使用 052
6.4 程序常見(jiàn)錯(cuò)誤 053
6.4.1 錯(cuò)誤類(lèi)型 053
6.4.2 錯(cuò)誤解決 053
6.5 任務(wù)練習(xí) 054
小結(jié) 054
第7章 函數(shù) 055
7.1 概述 055
7.2 函數(shù)使用入門(mén) 055
7.2.1 定義函數(shù) 055
7.2.2 調(diào)用函數(shù) 056
7.3 深入理解函數(shù)作用 056
7.3.1 封裝重復(fù)性代碼 056
7.3.2 實(shí)現(xiàn)某種功能 057
7.4 函數(shù)參數(shù) 058
7.4.1 參數(shù)的作用 058
7.4.2 形參 058
7.4.3 實(shí)參 059
7.5 帶參數(shù)的函數(shù)調(diào)用的說(shuō)明 059
7.5.1 形參和實(shí)參個(gè)數(shù)一樣 059
7.5.2 實(shí)參個(gè)數(shù)多于形參個(gè)數(shù) 060
7.5.3 實(shí)參個(gè)數(shù)少于形參個(gè)數(shù) 060
7.5.4 arguments對(duì)象 060
7.5.5 length屬性 061
7.5.6 arguments和length對(duì)比 061
7.6 函數(shù)的返回值 061
7.7 作用域 062
7.7.1 概述 062
7.7.2 全局作用域 062
7.7.3 局部作用域 062
7.7.4 全局變量 063
7.7.5 局部變量 063
7.7.6 作用域鏈 064
7.8 提升機(jī)制 065
7.8.1 函數(shù)表達(dá)式 065
7.8.2 問(wèn)題引入及提升機(jī)制概述 066
7.8.3 變量提升 067
7.8.4 函數(shù)提升 067
7.9 高階函數(shù) 068
7.9.1 概述 068
7.9.2 函數(shù)作為參數(shù) 068
7.9.3 函數(shù)作為返回值 068
7.10 立即執(zhí)行函數(shù) 069
7.11 任務(wù)練習(xí) 069
小結(jié) 069
第8章 面向?qū)ο?071
8.1 概述 071
8.2 創(chuàng)建對(duì)象的方式 072
8.2.1 new Object方式 072
8.2.2 字面量方式 073
8.2.3 工廠函數(shù)方式 073
8.2.4 構(gòu)造函數(shù)方式 074
8.3 原型prototype 076
8.3.1 構(gòu)造函數(shù)創(chuàng)建對(duì)象問(wèn)題引入 076
8.3.2 原型的使用 077
8.4 原型繼承 078
8.4.1 概述 078
8.4.2 透徹理解原型繼承 079
8.5 原型鏈 080
8.5.1 問(wèn)題引入 080
8.5.2 原型對(duì)象中的__proto__ 081
8.5.3 Object原型對(duì)象的作用 081
8.5.4 Object原型對(duì)象中的__proto__ 082
8.6 this關(guān)鍵字理解 083
8.6.1 全局性普通函數(shù)中的this 083
8.6.2 構(gòu)造函數(shù)中的this 083
8.6.3 對(duì)象方法中的this 083
8.6.4 原型對(duì)象方法中的this 084
8.7 繼承 084
8.7.1 對(duì)象冒充 085
8.7.2 call/apply方式 086
8.7.3 擴(kuò)展Object類(lèi) 087
8.7.4 原型方式 089
8.8 常用的內(nèi)置對(duì)象 090
8.8.1 Math對(duì)象 090
8.8.2 字符串對(duì)象 091
8.8.3 日期對(duì)象 092
8.8.4 數(shù)組對(duì)象 093
8.8.5 布爾對(duì)象 097
8.8.6 數(shù)字對(duì)象 097
8.9 正則表達(dá)式 098
8.9.1 說(shuō)明 098
8.9.2 概述 098
8.9.3 使用正則表達(dá)式 099
8.9.4 邊界符 099
8.9.5 范圍 100
8.9.6 量詞 100
8.9.7 括號(hào)的使用 101
8.9.8 元字符 102
8.9.9 修飾符 102
8.9.10 字符串在正則表達(dá)式中的使用 102
8.10 經(jīng)典案例 103
8.10.1 統(tǒng)計(jì)每個(gè)字符的個(gè)數(shù) 103
8.10.2 隨機(jī)點(diǎn)名 103
8.10.3 倒計(jì)時(shí) 104
8.10.4 獲取文件擴(kuò)展名 104
8.10.5 對(duì)象轉(zhuǎn)換為請(qǐng)求參數(shù)格式字符串 105
8.10.6 擴(kuò)展Array對(duì)象 105
8.10.7 擴(kuò)展String對(duì)象 106
8.10.8 計(jì)算長(zhǎng)方形面積 106
8.10.9 遍歷對(duì)象 107
小結(jié) 107
第9章 DOM操作 108
9.1 概述 108
9.2 DOM節(jié)點(diǎn) 109
9.2.1 節(jié)點(diǎn)屬性 109
9.2.2 文檔節(jié)點(diǎn) 110
9.2.3 元素節(jié)點(diǎn) 110
9.2.4 屬性節(jié)點(diǎn) 110
9.2.5 文本節(jié)點(diǎn) 110
9.3 獲取元素及內(nèi)容操作 110
9.3.1 根據(jù)id獲取元素 111
9.3.2 根據(jù)標(biāo)簽名獲取元素 111
9.3.3 根據(jù)name獲取元素 111
9.3.4 根據(jù)類(lèi)名獲取元素 112
9.3.5 根據(jù)選擇器獲取元素 112
9.3.6 獲取和設(shè)置元素內(nèi)容操作 113
9.4 屬性操作 114
9.4.1 事件屬性 114
9.4.2 獲取內(nèi)置屬性 114
9.4.3 設(shè)置內(nèi)置屬性 115
9.4.4 獲取自定義屬性 115
9.4.5 設(shè)置自定義屬性 116
9.4.6 H5自定義屬性的規(guī)范 116
9.4.7 移除屬性 117
9.4.8 表單屬性 118
9.5 樣式操作 118
9.5.1 行內(nèi)樣式操作 118
9.5.2 類(lèi)名樣式操作 119
9.6 節(jié)點(diǎn)操作 120
9.6.1 獲取父節(jié)點(diǎn) 121
9.6.2 獲取子節(jié)點(diǎn) 121
9.6.3 獲取兄弟節(jié)點(diǎn) 122
9.6.4 創(chuàng)建及添加節(jié)點(diǎn) 123
9.6.5 刪除節(jié)點(diǎn) 123
9.6.6 復(fù)制節(jié)點(diǎn) 124
9.6.7 創(chuàng)建及設(shè)置屬性節(jié)點(diǎn) 125
9.7 DOM事件 125
9.7.1 概述 125
9.7.2 注冊(cè)事件 126
9.7.3 刪除事件 127
9.7.4 事件流 128
9.7.5 事件對(duì)象 131
9.7.6 阻止事件冒泡 132
9.7.7 阻止事件默認(rèn)行為 132
9.7.8 事件委派 134
9.7.9 窗口事件 135
9.7.10 鼠標(biāo)事件 136
9.7.11 鍵盤(pán)事件 138
9.7.12 表單事件 139
9.8 經(jīng)典案例 140
9.8.1 簡(jiǎn)易版新聞評(píng)論 140
9.8.2 簡(jiǎn)易版新聞評(píng)論升級(jí)版 140
9.8.3 全選案例 142
9.8.4 隔行變色效果 143
小結(jié) 144
第10章 BOM操作 145
10.1 概述 145
10.2 window對(duì)象 145
10.2.1 概述 145
10.2.2 警告框 146
10.2.3 確認(rèn)框 146
10.2.4 提示框 147
10.2.5 打開(kāi)窗口 147
10.2.6 關(guān)閉窗口 148
10.3 location對(duì)象 148
10.3.1 概述 148
10.3.2 重新加載頁(yè)面 148
10.3.3 跳轉(zhuǎn)其他頁(yè)面 149
10.3.4 新頁(yè)面替換當(dāng)前頁(yè)面 149
10.4 history對(duì)象 149
10.4.1 概述 149
10.4.2 常用方法 150
10.5 navigator對(duì)象 150
10.5.1 概述 150
10.5.2 檢測(cè)瀏覽器類(lèi)型 150
10.6 定時(shí)器 151
10.6.1 概述 151
10.6.2 啟動(dòng)延時(shí)定時(shí)器 151
10.6.3 取消延時(shí)定時(shí)器 151
10.6.4 啟動(dòng)間隔定時(shí)器 152
10.6.5 取消間隔定時(shí)器 152
10.7 經(jīng)典案例 153
10.7.1 顯示時(shí)鐘 153
10.7.2 顯示和隱藏切換 153
10.7.3 實(shí)現(xiàn)文本框內(nèi)容校驗(yàn) 154
10.7.4 模擬發(fā)送驗(yàn)證碼 155
小結(jié) 155
第11章 JavaScript高級(jí)篇 156
11.1 嚴(yán)格模式 156
11.1.1 概述 156
11.1.2 開(kāi)啟嚴(yán)格模式 156
11.1.3 整個(gè)腳本文件的嚴(yán)格模式 157
11.1.4 特定函數(shù)的嚴(yán)格模式 157
11.1.5 嚴(yán)格模式的使用影響 157
11.2 改變函數(shù)內(nèi)this的指向 159
11.2.1 bind方式 160
11.2.2 call/apply/bind的總結(jié) 161
11.3 對(duì)象增強(qiáng) 161
11.3.1 Object.define Property() 162
11.3.2 Object.define Properties() 165
11.3.3 Object.keys() 166
11.3.4 Object.is() 167
11.3.5 Object.assign() 167
11.3.6 Object.create() 169
11.4 JavaScript的內(nèi)存管理 170
11.4.1 概述 170
11.4.2 棧內(nèi)存 170
11.4.3 堆內(nèi)存 171
11.4.4 基本數(shù)據(jù)類(lèi)型傳參 172
11.4.5 引用數(shù)據(jù)類(lèi)型傳參 173
11.4.6 值傳遞和引用傳遞 174
11.4.7 垃圾回收 174
11.4.8 引用計(jì)數(shù)算法 175
11.4.9 標(biāo)記清除算法 176
11.4.10 內(nèi)存泄漏 176
11.5 閉包 179
11.5.1 案例思考 179
11.5.2 概述 181
11.5.3 閉包的實(shí)現(xiàn)原理 181
11.5.4 閉包的生命周期 183
11.5.5 閉包的應(yīng)用 183
11.6 淺拷貝和深拷貝 184
11.6.1 引用賦值 185
11.6.2 淺拷貝 186
11.6.3 深拷貝 190
11.7 JSON 192
11.7.1 概述 192
11.7.2 對(duì)象結(jié)構(gòu) 192
11.7.3 數(shù)組結(jié)構(gòu) 193
11.7.4 區(qū)分JSON和JavaScript對(duì)象 193
11.7.5 JavaScript對(duì)象和JSON相互轉(zhuǎn)換 194
11.7.6 JSON使用時(shí)的注意事項(xiàng) 194
11.8 常見(jiàn)算法 195
11.8.1 冒泡排序 195
11.8.2 選擇排序 196
11.8.3 二分法查找 197
11.8.4 遞歸 198
11.9 防抖和節(jié)流 199
11.9.1 防抖 199
11.9.2 節(jié)流 201
11.9.3 防抖和節(jié)流的對(duì)比 204
11.10 WebStorage存儲(chǔ)方案 204
11.10.1 概述 204
11.10.2 分類(lèi) 204
11.10.3 localStorage 205
11.10.4 sessionStorage 205
11.10.5 自定義工具類(lèi)封裝 206
11.11 經(jīng)典案例 207
11.11.1 Vue2響應(yīng)式原理簡(jiǎn)單實(shí)現(xiàn) 207
11.11.2 遞歸實(shí)現(xiàn)深拷貝 209
小結(jié) 210
第12章 ES6新特性 211
12.1 概述 211
12.1.1 為什么要學(xué)習(xí)ES6 211
12.1.2 ECMAScript的歷史 211
12.1.3 ECMAScript和JavaScript的關(guān)系 212
12.1.4 結(jié)束語(yǔ) 212
12.2 變量和常量 212
12.2.1 var定義變量的問(wèn)題 212
12.2.2 let 213
12.2.3 const 214
12.3 字符串?dāng)U展 215
12.3.1 新增方法 215
12.3.2 模板字符串 216
12.3.3 其他方法擴(kuò)展說(shuō)明 217
12.4 變量的解構(gòu)賦值 217
12.4.1 對(duì)象解構(gòu) 217
12.4.2 數(shù)組解構(gòu) 218
12.4.3 函數(shù)參數(shù)列表中的解構(gòu)賦值 218
12.4.4 復(fù)雜對(duì)象的解構(gòu) 219
12.5 函數(shù)擴(kuò)展 219
12.5.1 剩余參數(shù) 219
12.5.2 函數(shù)參數(shù)默認(rèn)值 219
12.6 箭頭函數(shù) 220
12.6.1 箭頭函數(shù)的寫(xiě)法 220
12.6.2 箭頭函數(shù)的參數(shù)說(shuō)明 221
12.6.3 箭頭函數(shù)的函數(shù)體說(shuō)明 221
12.6.4 箭頭函數(shù)中的this 222
12.6.5 箭頭函數(shù)的注意事項(xiàng) 223
12.7 簡(jiǎn)化對(duì)象寫(xiě)法 223
12.7.1 對(duì)象的變量屬性簡(jiǎn)寫(xiě) 223
12.7.2 對(duì)象的函數(shù)屬性簡(jiǎn)寫(xiě) 224
12.8 數(shù)組對(duì)象的方法擴(kuò)展 224
12.8.1 find方法 224
12.8.2 findIndex方法 225
12.8.3 of方法 225
12.8.4 from方法 225
12.9 展開(kāi)運(yùn)算符 226
12.9.1 數(shù)組展開(kāi) 226
12.9.2 對(duì)象展開(kāi) 227
12.10 class類(lèi) 228
12.10.1 定義類(lèi) 228
12.10.2 類(lèi)的構(gòu)造方法 229
12.10.3 實(shí)例對(duì)象的方法 230
12.10.4 靜態(tài)屬性和靜態(tài)方法 230
12.10.5 繼承 231
12.11 Set 233
12.11.1 概述 233
12.11.2 創(chuàng)建Set集合 233
12.11.3 常用方法和屬性 233
12.11.4 遍歷方式 234
12.12 Map 235
12.12.1 概述 235
12.12.2 創(chuàng)建Map集合 235
12.12.3 常用方法和屬性 236
12.12.4 遍歷方式 237
12.12.5 使用Map計(jì)算字符個(gè)數(shù) 238
小結(jié) 238
第13章 Promise異步編程 240
13.1 概述 240
13.2 JavaScript異步編程的實(shí)現(xiàn) 240
13.2.1 為什么JavaScript是單線程 240
13.2.2 JavaScript如何實(shí)現(xiàn)異步編程 241
13.3 回調(diào)函數(shù) 242
13.3.1 說(shuō)明 242
13.3.2 事件處理程序 242
13.3.3 延遲計(jì)時(shí)器 243
13.3.4 回調(diào)函數(shù)再理解 243
13.3.5 回調(diào)地獄 244
13.4 Promise 244
13.4.1 概述 245
13.4.2 Promise對(duì)象的語(yǔ)法 245
13.4.3 Promise對(duì)象的屬性和方法 246
13.4.4 Promise的認(rèn)識(shí)誤區(qū) 246
13.4.5 Promise的三種狀態(tài) 247
13.4.6 Promise的結(jié)果 248
13.4.7 then方法詳解 249
13.4.8 catch方法詳解 255
13.4.9 其他方法 257
13.5 async關(guān)鍵字 257
13.5.1 概述 257
13.5.2 異步函數(shù) 257
13.6 await關(guān)鍵字 258
13.6.1 概述 258
13.6.2 案例 258
小結(jié) 259
第14章 模塊化 260
14.1 傳統(tǒng)開(kāi)發(fā)的弊端 260
14.1.1 命名沖突 260
14.1.2 文件依賴(lài) 260
14.2 生活中的模塊化 261
14.3 ES6模塊化概述 261
14.4 模塊化開(kāi)發(fā) 262
14.4.1 導(dǎo)出變量和常量 262
14.4.2 導(dǎo)出函數(shù) 262
14.4.3 導(dǎo)出類(lèi) 263
14.4.4 導(dǎo)出時(shí)別名的使用 263
14.4.5 導(dǎo)入時(shí)別名的使用 264
14.4.6 一次性導(dǎo)入 265
14.4.7 default默認(rèn)導(dǎo)出 265
14.4.8 命名導(dǎo)出和默認(rèn)導(dǎo)出混合使用 266
14.5 動(dòng)態(tài)引入模塊 267
14.5.1 需求 267
14.5.2 import()表達(dá)式 267
14.5.3 動(dòng)態(tài)引入模塊的使用場(chǎng)景 268
小結(jié) 268