本書的重點(diǎn)是JavaScript語言的基礎(chǔ)語法,它是JavaScript能夠?qū)崿F(xiàn)高級(jí)特效的必要前提。本書通過*通俗的方式講解了JavaScript語言中的變量、數(shù)據(jù)結(jié)構(gòu)、運(yùn)算符、語句、函數(shù)、對(duì)象等知識(shí)。雖然本書內(nèi)容只是JavaScript的基礎(chǔ),和網(wǎng)頁沒有關(guān)系,并不能實(shí)現(xiàn)太多頁面中的特效,但本書能夠起到**的作用,能夠帶你走進(jìn)JavaScript的微妙世界,是學(xué)習(xí)前端*核心的內(nèi)容。本書是“跟兄弟連學(xué)HTML5系列教程”的第二本書,在知識(shí)體系方面需要先掌握系列圖書**本《細(xì)說網(wǎng)頁制作》中的一部分內(nèi)容,同時(shí)為讀者之后學(xué)習(xí)同系列其他圖書做鋪墊。
本書內(nèi)容是純JavaScript語言部分,和瀏覽器無關(guān),包括JavaScript基本語法、數(shù)據(jù)類型、流程控制、函數(shù)、對(duì)象、數(shù)組和內(nèi)置對(duì)象,所有知識(shí)點(diǎn)都是為了學(xué)習(xí)DOM編程、Node.js、JS框架等JavaScript高級(jí)部分做準(zhǔn)備。本書雖然是JavaScript的基礎(chǔ)部分,但全書內(nèi)容都需要牢牢掌握,才能更好地晉級(jí)學(xué)習(xí)。
兄弟連IT教育,成立于2006年,中國(guó)程序員培訓(xùn)領(lǐng)導(dǎo)者。兄弟連以“優(yōu)秀的教學(xué)、嚴(yán)格的管理、職業(yè)素質(zhì)課貫穿始終”而聞名,現(xiàn)已開設(shè)PHP、UI、HTML5、Java/Android、iOS、Linux等眾多課程,分別在北京、上海、廣州、沈陽、揚(yáng)州、蘇州、鄭州、濟(jì)南設(shè)立校區(qū),今后會(huì)陸續(xù)在成都、西安、武漢等地建設(shè)校區(qū),每年有數(shù)十萬名學(xué)員受益于兄弟連的職業(yè)培訓(xùn)、教學(xué)視頻、網(wǎng)絡(luò)公開課、院校講座、出版書籍。我們相信,我們不僅僅是老師,更是學(xué)員的夢(mèng)想守護(hù)者與職場(chǎng)引路人。
第1章 初識(shí)JavaScript 1
1.1 JavaScript概述 2
1.1.1 JavaScript和HTML的關(guān)系 2
1.1.2 JavaScript與瀏覽器的關(guān)系 3
1.1.3 JavaScript的運(yùn)行原理 4
1.2 JavaScript的主要應(yīng)用 5
1.2.1 處理用戶事件 5
1.2.2 用JavaScript跨平臺(tái)開發(fā)移動(dòng)APP 7
1.2.3 節(jié)省與Web服務(wù)器的交互時(shí)間 8
1.2.4 編寫頁面特效 8
1.2.5 客戶端功能插件 10
1.2.6 游戲和微活動(dòng) 11
1.2.7 其他方面的應(yīng)用 11
1.3 JavaScript的發(fā)展史 12
1.3.1 JavaScript的誕生 12
1.3.2 JavaScript與Java的關(guān)系 13
1.3.3 JavaScript與JScript的關(guān)系 13
1.4 偉大的ECMA標(biāo)準(zhǔn) 13
1.4.1 ECMAScript標(biāo)準(zhǔn)是什么 14
1.4.2 ECMAScript標(biāo)準(zhǔn)的由來 14
1.4.3 ECMAScript的版本 14
1.4.4 ECMAScript第6版的新特性 15
1.5 JavaScript的特性 16
1.6 JavaScript的組成 16
1.6.1 JavaScript語言的語法 17
1.6.2 文檔對(duì)象模型(DOM) 17
1.6.3 瀏覽器對(duì)象模型(BOM) 18
1.7 JavaScript在移動(dòng)開發(fā)中的應(yīng)用 19
1.7.1 PC端和移動(dòng)端開發(fā)的區(qū)別 19
1.7.2 什么是移動(dòng)端Web APP 19
1.8 JavaScript常見的開發(fā)形式 20
1.8.1 原生JavaScript 20
1.8.2 JavaScript插件 20
1.8.3 JavaScript框架 20
1.9 JavaScript的開發(fā)工具 21
1.10 本書的上下文內(nèi)容 23
1.11 JavaScript的學(xué)習(xí)方法 23
1.11.1 編程思想 24
1.11.2 編程實(shí)戰(zhàn) 24
1.11.3 要事為先的原則 24
1.11.4 Bug解決之道 25
1.11.5 看教學(xué)視頻,讓學(xué)習(xí)變得簡(jiǎn)單 26
本章小結(jié) 27
課后練習(xí)題 27
第2章 學(xué)習(xí)前的準(zhǔn)備 29
2.1 開發(fā)環(huán)境和開發(fā)工具的選擇與使用 29
2.1.1 開發(fā)環(huán)境 30
2.1.2 開發(fā)工具 34
2.1.3 *擴(kuò)展 36
2.2 在HTML中如何使用JavaScript 38
2.2.1 行內(nèi)式 38
2.2.2 嵌入式 42
2.2.3 引入式 43
2.2.4 三種方式的特點(diǎn) 44
2.3 基本調(diào)試方法 45
2.3.1 警告窗 45
2.3.2 修改網(wǎng)頁內(nèi)容 46
2.3.3 修改標(biāo)簽內(nèi)容 47
2.3.4 控制臺(tái) 50
2.4 書寫規(guī)范 52
2.4.1 基本的標(biāo)點(diǎn)符號(hào) 52
2.4.2 嚴(yán)格區(qū)分大小寫 55
2.4.3 注釋 56
2.5 標(biāo)識(shí)符 58
2.6 保留字 59
2.7 JavaScript的優(yōu)化設(shè)計(jì)思想 60
本章小結(jié) 61
課后練習(xí)題 62
第3章 JavaScript中的變量 64
3.1 變量的聲明和賦值 64
3.1.1 變量聲明 64
3.1.2 變量賦值 66
3.2 變量提升 67
3.3 全局變量和局部變量 69
3.4 變量的命名規(guī)則 70
3.5 ES6新特性之局部變量 71
3.5.1 let關(guān)鍵字的基本使用 71
3.5.2 新增的區(qū)塊作用域 72
3.5.3 關(guān)鍵字let與var的區(qū)別 73
3.6 ES6新特性之全局變量 75
3.7 ES6新特性之解構(gòu)賦值 76
本章小結(jié) 78
課后練習(xí)題 78
第4章 JavaScript的數(shù)據(jù)類型 80
4.1 獲取數(shù)據(jù)類型 80
4.2 字符串類型(string) 82
4.2.1 字面量表示 82
4.2.2 轉(zhuǎn)義字符 84
4.2.3 字符串的特點(diǎn) 85
4.2.4 ES6新特性之模板字符串 86
4.3 數(shù)值類型(number) 88
4.3.1 字面量表示 88
4.3.2 進(jìn)制轉(zhuǎn)換 88
4.3.3 浮點(diǎn)數(shù) 89
4.3.4 浮點(diǎn)數(shù)的算術(shù)運(yùn)算 90
4.3.5 數(shù)值范圍 91
4.3.6 NaN 91
4.4 布爾類型(boolean) 92
4.5 未定義類型(undefined) 93
4.6 空類型(null) 93
4.7 對(duì)象類型(object) 94
4.8 類型轉(zhuǎn)換 95
4.8.1 字符串類型轉(zhuǎn)換 95
4.8.2 數(shù)值類型轉(zhuǎn)換 97
4.8.3 布爾類型轉(zhuǎn)換 101
4.9 ES6之Symbol類型 102
4.9.1 Symbol類型的創(chuàng)建 103
4.9.2 Symbol類型的特性 103
4.9.3 獲取已創(chuàng)建的Symbol類型 105
本章小結(jié) 107
課后練習(xí)題 107
第5章 表達(dá)式與運(yùn)算符 110
5.1 表達(dá)式 110
5.1.1 簡(jiǎn)單表達(dá)式 111
5.1.2 復(fù)雜表達(dá)式 111
5.2 運(yùn)算符 113
5.2.1 算術(shù)運(yùn)算符 113
5.2.2 賦值運(yùn)算符 118
5.2.3 關(guān)系運(yùn)算符 118
5.2.4 邏輯運(yùn)算符 121
5.2.5 位運(yùn)算符 126
5.2.6 其他運(yùn)算符 129
5.2.7 優(yōu)先級(jí) 133
本章小結(jié) 136
課后練習(xí)題 136
第6章 語句 139
6.1 順序結(jié)構(gòu) 139
6.2 表達(dá)式語句 140
6.3 聲明語句 141
6.4 條件語句 141
6.4.1 if語句 142
6.4.2 if...else語句 143
6.4.3 else if語句 145
6.4.4 switch語句 147
6.5 循環(huán)語句 149
6.5.1 while循環(huán) 150
6.5.2 do...while循環(huán) 151
6.5.3 for循環(huán) 152
6.5.4 for...in循環(huán) 156
6.6 跳出語句 156
6.6.1 label語句 157
6.6.2 break語句 157
6.6.3 continue語句 158
本章小結(jié) 160
課后練習(xí)題 160
第7章 函數(shù) 163
7.1 函數(shù)分類 163
7.2 自定義函數(shù) 164
7.2.1 函數(shù)的創(chuàng)建和調(diào)用 164
7.2.2 參數(shù) 166
7.2.3 返回值 170
7.3 函數(shù)的特殊類型 170
7.3.1 函數(shù)表達(dá)式 170
7.3.2 自執(zhí)行函數(shù) 171
7.3.3 回調(diào)函數(shù) 173
7.3.4 遞歸函數(shù) 175
7.3.5 構(gòu)造函數(shù) 178
7.4 函數(shù)作用域 178
7.4.1 局部變量 178
7.4.2 變量的訪問機(jī)制 179
7.4.3 變量的生命周期 180
7.5 閉包 181
7.6 ES6函數(shù)新特性 184
7.6.1 rest參數(shù) 184
7.6.2 箭頭函數(shù) 184
本章小結(jié) 186
課后練習(xí)題 186
第8章 對(duì)象 189
8.1 理解對(duì)象 189
8.1.1 什么是對(duì)象 190
8.1.2 對(duì)象有什么用 191
8.1.3 如何使用對(duì)象 192
8.2 創(chuàng)建對(duì)象 194
8.2.1 字面量創(chuàng)建 194
8.2.2 構(gòu)造函數(shù)創(chuàng)建 195
8.2.3 工廠模式 196
8.2.4 自定義構(gòu)造函數(shù) 197
8.3 對(duì)象屬性 200
8.3.1 屬性的查詢 200
8.3.2 屬性的刪除 200
8.3.3 屬性的遍歷 201
8.4 對(duì)象的存儲(chǔ) 202
8.4.1 存儲(chǔ)機(jī)制 202
8.4.2 垃圾回收機(jī)制 203
8.4.3 內(nèi)存優(yōu)化 203
8.5 ES6對(duì)象新特性 204
8.5.1 屬性的簡(jiǎn)潔表示法 204
8.5.2 屬性名的表達(dá)式 206
本章小結(jié) 208
課后練習(xí)題 208
第9章 數(shù)組 210
9.1 理解數(shù)組 210
9.1.1 什么是數(shù)組 210
9.1.2 數(shù)組的組成結(jié)構(gòu) 211
9.1.3 數(shù)組和對(duì)象的聯(lián)系與區(qū)別 211
9.2 創(chuàng)建數(shù)組 213
9.2.1 構(gòu)造函數(shù)創(chuàng)建數(shù)組 214
9.2.2 數(shù)組直接量創(chuàng)建數(shù)組 215
9.3 數(shù)組元素 216
9.3.1 元素的獲取 216
9.3.2 元素的添加、修改和刪除 217
9.3.3 元素的查詢 221
9.3.4 元素的遍歷 222
9.4 特殊的數(shù)組形式 225
9.4.1 稀疏數(shù)組 226
9.4.2 多維數(shù)組 227
9.4.3 類數(shù)組對(duì)象 228
9.4.4 字符串 229
9.5 數(shù)組特有的方法 229
9.5.1 join()方法 230
9.5.2 concat()方法 230
9.5.3 splice()方法 232
9.5.4 slice()方法 232
9.5.5 push()和pop()方法 233
9.5.6 unshift()和shift()方法 233
9.5.7 forEach()方法 234
9.5.8 map()方法 235
9.5.9 filter()方法 236
9.5.10 every()和some()方法 237
9.5.11 reduce()和reduceRight()方法 238
9.5.12 indexOf()和lastIndexOf()方法 239
9.6 ES6數(shù)組新特性 239
9.6.1 Array.of()方法 240
9.6.2 數(shù)組實(shí)例的find()和findIndex()方法 240
9.6.3 數(shù)組實(shí)例的fill()方法 241
本章小結(jié) 242
課后練習(xí)題 243
第10章 內(nèi)置對(duì)象 245
10.1 String對(duì)象 245
10.1.1 簡(jiǎn)單上手 246
10.1.2 構(gòu)造方法 246
10.1.3 其他方法 247
10.1.4 實(shí)際操作 248
10.2 Math對(duì)象 249
10.2.1 簡(jiǎn)單上手 250
10.2.2 對(duì)象屬性 250
10.2.3 對(duì)象方法 250
10.2.4 實(shí)際操作 251
10.3 Date對(duì)象 253
10.3.1 簡(jiǎn)單上手 253
10.3.2 構(gòu)造方法 253
10.3.3 實(shí)例方法 255
10.3.4 靜態(tài)方法 258
10.3.5 實(shí)際操作 259
10.4 RegExp對(duì)象 260
10.4.1 簡(jiǎn)單上手 260
10.4.2 構(gòu)造方法 260
10.4.3 元字符 261
10.4.4 運(yùn)算符優(yōu)先級(jí) 263
10.4.5 實(shí)際操作 264
10.5 Number對(duì)象 265
10.5.1 簡(jiǎn)單上手 265
10.5.2 構(gòu)造方法 265
10.5.3 對(duì)象屬性 266
10.5.4 對(duì)象方法 266
10.5.5 實(shí)際操作 268
10.6 Event對(duì)象 268
10.6.1 簡(jiǎn)單上手 269
10.6.2 事件句柄(Event Handlers) 269
10.6.3 鼠標(biāo)/鍵盤屬性 271
10.6.4 IE屬性 272
10.6.5 標(biāo)準(zhǔn)Event對(duì)象屬性 274
10.6.6 標(biāo)準(zhǔn)Event對(duì)象方法 274
本章小結(jié) 275
課后練習(xí)題 275