JavaScript是目前最流行的網(wǎng)頁前端開發(fā)技術(shù)之一。本書由淺入深、循序漸進地介紹了使用JavaScript開發(fā)網(wǎng)頁前端應(yīng)用的基礎(chǔ)知識和技術(shù)技能。全書分為3篇。第1篇是JavaScript語法基礎(chǔ), 包括JavaScript簡介、基本語法、數(shù)據(jù)類型、控制語句、函數(shù)與數(shù)組等。第2篇是JavaScript面向?qū)ο蠡A(chǔ), 包括JavaScript面向?qū)ο缶幊獭⑵聊缓蜑g覽器對象、文檔對象、窗口對象、歷史地址與cookie對象以及表單和DOM對象。第3篇是JavaScript進階與實戰(zhàn), 包括JavaScript中正則表達式的使用、jQuery框架的使用以及一個接元寶游戲?qū)嵗。通過進階技術(shù)的學(xué)習(xí)與綜合實例, 讀者能真正感受到JavaScript的魅力。
作者主要研究方向為Web、數(shù)據(jù)庫、網(wǎng)絡(luò)以及軟件安全等。參與作戰(zhàn)想定編輯器,電視購物網(wǎng)站等多個項目。作者致力于研究各種基于Windows平臺開發(fā)語言的共同點,對系統(tǒng)底層研究頗有心得,也做過一些數(shù)據(jù)庫系統(tǒng)和大型電商購物系統(tǒng)。
第1篇 JavaScript語法基礎(chǔ)
第1章 認識JavaScript 1
1.1 腳本語言JavaScript 1
1.1.1 腳本語言的分類 1
1.1.2 JavaScript的標準與歷史 2
1.1.3 JavaScript在網(wǎng)頁中的應(yīng)用 3
1.1.4 JavaScript的發(fā)展趨勢 3
1.2 第一個JavaScript程序 4
1.2.1 選擇JavaScript編輯器 4
1.2.2 編寫Hello World程序 5
1.2.3 運行程序 5
1.3 編寫JavaScript代碼時的注意事項 6
1.3.1 大小寫敏感 6
1.3.2 空格與換行 6
1.3.3 分號可有可無 7
1.3.4 注釋形式 7
1.4 小結(jié) 8
1.5 習(xí)題 8
第2章 JavaScript中的數(shù)據(jù)類型 9
2.1 基本數(shù)據(jù)類型 9
2.1.1 字符串型數(shù)據(jù) 9
2.1.2 數(shù)值型數(shù)據(jù) 10
2.1.3 布爾型數(shù)據(jù) 12
2.2 復(fù)合型數(shù)據(jù) 13
2.2.1 內(nèi)置對象 13
2.2.2 日期對象 14
2.2.3 數(shù)學(xué)對象 16
2.2.4 全局對象 18
2.2.5 字符串對象 19
2.2.6 數(shù)組對象 20
2.3 數(shù)據(jù)類型的轉(zhuǎn)換 22
2.3.1 隱式類型轉(zhuǎn)換 22
2.3.2 顯式類型轉(zhuǎn)換 22
2.4 小結(jié) 23
2.5 習(xí)題 24
第3章 常量、變量、表達式和運算符 28
3.1 常量和變量 28
3.1.1 常量的定義 28
3.1.2 變量的定義 29
3.1.3 變量的作用域 31
3.1.4 JavaScript中的關(guān)鍵字 32
3.2 表達式的定義 33
3.3 認識運算符 34
3.3.1 算術(shù)運算符簡介 34
3.3.2 關(guān)系運算符簡介 35
3.3.3 字符串運算符簡介 36
3.3.4 位運算符簡介 36
3.3.5 其他運算符 36
3.4 運算符的優(yōu)先級 37
3.5 小結(jié) 38
3.6 習(xí)題 38
第4章 控制語句 41
4.1 選擇語句 41
4.1.1 if選擇 42
4.1.2 if-else選擇 43
4.1.3 if-else-if選擇 44
4.1.4 switch多條件選擇 45
4.1.5 選擇語句綜合示例 46
4.2 循環(huán)語句 48
4.2.1 for循環(huán) 48
4.2.2 while循環(huán) 49
4.2.3 do-while循環(huán) 50
4.2.4 for-in循環(huán) 51
4.2.5 break和continue跳轉(zhuǎn) 51
4.2.6 循環(huán)語句綜合示例 52
4.3 使用異常處理語句 53
4.3.1 try-catch語句 53
4.3.2 try-catch-finally語句 54
4.3.3 throw語句 55
4.3.4 異常處理語句綜合示例 56
4.4 小結(jié) 58
4.5 習(xí)題 58
第5章 函數(shù)和數(shù)組 63
5.1 函數(shù)的定義 63
5.1.1 函數(shù)的普通定義 63
5.1.2 函數(shù)的變量定義 66
5.1.3 指針調(diào)用 67
5.1.4 函數(shù)的參數(shù) 68
5.1.5 arguments對象 69
5.2 函數(shù)的返回類型 70
5.2.1 值類型 70
5.2.2 引用類型 70
5.2.3 使用返回函數(shù) 71
5.3 函數(shù)的分類 71
5.3.1 構(gòu)造函數(shù) 71
5.3.2 有返回值的函數(shù) 72
5.3.3 無返回值的函數(shù) 72
5.4 函數(shù)的作用域 72
5.4.1 公有函數(shù)的作用域 72
5.4.2 私有函數(shù)的作用域 73
5.4.3 使用this關(guān)鍵字 74
5.5 數(shù)組的定義 75
5.6 創(chuàng)建數(shù)組 75
5.6.1 創(chuàng)建空數(shù)組 75
5.6.2 指定數(shù)組長度創(chuàng)建新數(shù)組 75
5.6.3 指定數(shù)組元素創(chuàng)建新數(shù)組 76
5.6.4 直接創(chuàng)建新數(shù)組 76
5.7 數(shù)組元素的基本操作 76
5.7.1 讀取數(shù)組元素 77
5.7.2 添加數(shù)組元素 77
5.7.3 刪除數(shù)組元素 77
5.7.4 獲取數(shù)組元素的個數(shù) 77
5.8 數(shù)組對象的常見操作 78
5.8.1 數(shù)組轉(zhuǎn)換為字符串 78
5.8.2 數(shù)組元素連接成字符串 78
5.8.3 在數(shù)組尾部添加元素 79
5.8.4 刪除數(shù)組的最后一個元素 80
5.8.5 其他常見操作 81
5.9 小結(jié) 82
5.10 習(xí)題 83
第6章 JavaScript的調(diào)試與優(yōu)化 88
6.1 JavaScript開發(fā)工具深入剖析 88
6.2 JavaScript的調(diào)試簡介 89
6.2.1 調(diào)試前的準備工作 89
6.2.2 進行調(diào)試 90
6.2.3 跟蹤代碼 91
6.3 輸出日志 93
6.4 優(yōu)化代碼 95
6.5 小結(jié) 97
6.6 習(xí)題 97
第2篇 JavaScript面向?qū)ο蠡A(chǔ)
第7章 面向?qū)ο缶幊獭?9
7.1 面向?qū)ο蟮亩x 99
7.2 對象應(yīng)用 100
7.2.1 對象聲明和實例化 100
7.2.2 對象的引用 101
7.3 JavaScript的對象層次 102
7.3.1 JavaScript對象模型結(jié)構(gòu) 102
7.3.2 客戶端對象層次 103
7.3.3 瀏覽器對象模型 103
7.4 事件驅(qū)動與事件處理 104
7.4.1 詳解事件與事件驅(qū)動 104
7.4.2 掌握事件與處理代碼關(guān)聯(lián) 105
7.4.3 函數(shù)調(diào)用事件 107
7.4.4 代碼調(diào)用事件 107
7.4.5 掌握設(shè)置對象事件的方法 108
7.4.6 掌握顯式調(diào)用事件處理程序 109
7.4.7 事件處理程序的返回值 110
7.4.8 事件與this運算符 111
7.5 常用事件 112
7.5.1 瀏覽器事件 112
7.5.2 鼠標移動事件 112
7.5.3 鼠標單擊事件 113
7.5.4 加載與卸載事件 114
7.5.5 得到焦點與失去焦點事件 114
7.5.6 鍵盤事件 114
7.5.7 提交與重置事件 115
7.5.8 選擇與改變事件 115
7.6 小結(jié) 116
7.7 習(xí)題 116
第8章 屏幕和瀏覽器對象 119
8.1 認識屏幕對象 119
8.1.1 檢測顯示器參數(shù) 119
8.1.2 檢測客戶端顯示器屏幕分辨率 120
8.1.3 檢測客戶端顯示器屏幕的有效
寬度和高度 121
8.1.4 網(wǎng)頁開屏 122
8.2 認識瀏覽器對象 123
8.2.1 獲取瀏覽器對象 123
8.2.2 MimeType對象 124
8.2.3 瀏覽器對象的javaEnabled屬性 125
8.3 小結(jié) 126
8.4 習(xí)題 126
第9章 文檔對象 129
9.1 認識文檔對象 129
9.2 操作文檔對象 130
9.2.1 設(shè)置超鏈接的顏色 130
9.2.2 設(shè)置網(wǎng)頁背景顏色和默認文字顏色 131
9.2.3 設(shè)置文檔信息 133
9.2.4 在標題欄中顯示滾動信息 133
9.2.5 其他文檔對象常見操作 134
9.3 圖像對象 135
9.3.1 圖像對象概述 135
9.3.2 創(chuàng)建和使用圖像對象 135
9.3.3 掌握圖像對象的onerror事件 136
9.3.4 掌握顯示圖片的信息 137
9.3.5 對圖片進行置換 139
9.3.6 認識隨機圖片 140
9.3.7 動態(tài)改變圖片大小 141
9.4 鏈接對象 142
9.4.1 鏈接對象概述 142
9.4.2 掌握感知鼠標移動事件 142
9.4.3 對一個網(wǎng)頁上的所有超鏈接進行查看 143
9.4.4 認識翻頁程序 144
9.4.5 認識網(wǎng)站目錄 147
9.5 小結(jié) 149
9.6 習(xí)題 149
第10章 窗口對象 153
10.1 認識window對象 153
10.2 操作window對象 153
10.2.1 裝載文檔 154
10.2.2 卸載文檔 154
10.2.3 得到焦點與失去焦點 155
10.2.4 調(diào)整窗口的大小 156
10.2.5 對錯誤進行處理 156
10.3 對話框的類型 157
10.3.1 警告對話框 157
10.3.2 詢問對話框 158
10.3.3 輸入對話框 159
10.4 狀態(tài)欄 160
10.4.1 認識默認狀態(tài)欄信息 160
10.4.2 認識狀態(tài)欄瞬間信息 161
10.5 操作網(wǎng)頁窗口 161
10.5.1 打開一個新窗口 162
10.5.2 認識窗口名字 162
10.5.3 如何關(guān)閉窗口 163
10.5.4 對窗口進行引用 164
10.5.5 對文檔進行滾動 165
10.6 小結(jié) 166
10.7 習(xí)題 167
第11章 歷史、地址和cookie對象 169
11.1 認識歷史對象 169
11.1.1 歷史對象的分類 169
11.1.2 前進到上一頁和后退到下一頁 170
11.1.3 實現(xiàn)頁面的跳轉(zhuǎn) 171
11.2 地址對象 172
11.2.1 對象簡介概述 172
11.2.2 獲取指定地址的各屬性值 172
11.2.3 加載新網(wǎng)頁 173
11.2.4 獲取參數(shù) 174
11.2.5 裝載新文檔與重新裝載當前文檔 176
11.2.6 刷新文檔 177
11.2.7 加載新文檔 177
11.3 cookie對象 178
11.3.1 cookie的定義 179
11.3.2 創(chuàng)建與讀取cookie 179
11.3.3 獲取cookie的值 180
11.3.4 cookie的生存周期 181
11.3.5 cookie的注意事項 183
11.4 小結(jié) 183
11.5 習(xí)題 184
第12章 表單對象和DOM對象 188
12.1 認識表單對象 188
12.1.1 表單對象的種類 188
12.1.2 轉(zhuǎn)換大小寫 189
12.1.3 表單的提交和重置 190
12.1.4 響應(yīng)表單的提交和重置 191
12.2 操作表單對象 192
12.2.1 表單驗證 192
12.2.2 表單循環(huán)驗證 194
12.2.3 表單的提交方式 196
12.2.4 重置表單 197
12.2.5 如何不使用提交按鈕來提交表單 198
12.3 表單元素 199
12.4 文本框 199
12.4.1 文本框的創(chuàng)建方式 200
12.4.2 查看文本框的屬性值 200
12.4.3 動態(tài)跟蹤文本框中輸入的文字個數(shù) 201
12.4.4 限制文本框中輸入的字數(shù) 202
12.4.5 自動選擇文本框中的文字 203
12.4.6 改變多行文本框大小 204
12.5 DOM的本質(zhì)是XML 205
12.5.1 XML的API概述 205
12.5.2 認識節(jié)點的層次 205
12.5.3 掌握特定語言的文檔模型 206
12.6 使用DOM 206
12.6.1 訪問相關(guān)的節(jié)點 206
12.6.2 節(jié)點類型 208
12.6.3 簡單處理節(jié)點屬性 209
12.6.4 訪問指定節(jié)點 211
12.6.5 創(chuàng)建新節(jié)點 212
12.6.6 修改節(jié)點 213
12.7 遍歷DOM文檔 214
12.8 測試與DOM標準的一致性 216
12.9 小結(jié) 216
12.10 習(xí)題 217
第3篇 JavaScript進階與實戰(zhàn)
第13章 正則表達式 220
13.1 網(wǎng)頁為什么要使用正則表達式 220
13.2 正則表達式對象RegExp 220
13.3 正則表達式的簡單模式 221
13.3.1 詳解元字符 222
13.3.2 詳解量詞 222
13.4 正則表達式的復(fù)雜模式 224
13.4.1 使用分組 224
13.4.2 使用候選 225
13.4.3 使用非捕獲性分組 225
13.4.4 使用前瞻 226
13.5 正則表達式的常用模式 227
13.5.1 使用正則驗證日期 227
13.5.2 使用正則驗證電子郵件地址 228
13.6 小結(jié) 230
13.7 習(xí)題 230
第14章 jQuery框架 233
14.1 認識jQuery 233
14.1.1 jQuery的定義 233
14.1.2 jQuery與Ajax 234
14.1.3 jQuery與其他腳本庫的區(qū)別 234
14.2 搭建jQuery運行環(huán)境 235
14.2.1 jQuery庫的選擇 235
14.2.2 jQuery庫的引入 236
14.2.3 jQuery的第一個例子 237
14.3 jQuery原理分析 238
14.3.1 工作原理 238
14.3.2 運行機制 238
14.3.3 元素選擇 240
14.3.4 事件 241
14.4 jQuery對DIV層的操作 245
14.4.1 DIV的鼠標選取 245
14.4.2 DIV層的尺寸讀取 246
14.4.3 DIV層的顯示與隱藏 247
14.4.4 DIV內(nèi)的內(nèi)容控制 248
14.4.5 DIV層的定位 249
14.5 小結(jié) 250
14.6 習(xí)題 251
第15章 接元寶網(wǎng)頁游戲 252
15.1 創(chuàng)作思路及基本場景的實現(xiàn) 252
15.1.1 創(chuàng)作思路 252
15.1.2 實現(xiàn)基本場景及用戶界面 253
15.2 設(shè)計游戲角色 255
15.2.1 財神對象 255
15.2.2 元寶對象 256
15.3 游戲進程控制 257
15.3.1 初始化游戲 257
15.3.2 游戲啟動控制 257
15.3.3 游戲循環(huán) 258
15.3.4 游戲結(jié)束控制 258
15.3.5 碰撞檢測 259
15.3.6 運行測試 259
15.4 小結(jié) 260