內容簡介
本書是學習JavaScript編程的經典教程。全新的第6版涵蓋了ECMAScript 6。
全書分為8個部分,共26章。首部分“JavaScript基礎”,包括第1章到第4章,介紹了如何使用常用函式編寫簡單的腳本。第二部分“JavaScript編程”,包括第4章到第7章,介紹了JavaScript的數據類型,例如數值、字元串和數組;以及較為複雜的編程範例,比如循環控制和定時器等。第三部分“對象”,包括第8章到第10章,介紹如何創建和操作對象。第四部分“HTML和CSS”,包含第11章到第13章,介紹了JavaScript如何與HTML(包括HTML5)和CSS互動。第五部分“使用JavaScript庫”,包括第14章到第17章,介紹如何使用第三方庫,比如Prototype和jQuery,簡化跨瀏覽器的開發工作。第六部分“高級話題”,包括第18章到第21章,介紹讀取和寫入cookie,通過ECMAScript 6規範看看JavaScript中有什麼新功能,介紹了諸如AngularJS這樣的框架的用法,並且介紹了在Web頁面及其外使用JavaScript的示例。第七部分“專業技能”,包括第22章到第24章,介紹了專業JavaScript開發的知識,例如,良好的編程習慣、JavaScript調試和單元測試等。第八部分“Java遊戲編程”是一個全新部分,包括第25章和第26章,介紹了用JavaScript編寫Minecraft模組以及用EaselJS進行遊戲編程。全書的附錄,介紹了JavaScript編程常用工具,並給出了JavaScript快速參考。
基本信息
【作者】 [美] Phil Ballard 【編輯】 陳冀康
【ISBN】 978-7-115-42187-6 【日期】 2016-06
【版次】 1 【印次】 1
【頁數】 330頁 【字數】 533千字
目錄
第一部分 Java Script基礎
第1章 JavaScript簡介 3
1.1 Web腳本編程基礎 3
1.2 伺服器端與客戶端編程 4
1.3 JavaScript簡介 4
1.4 JavaScript起源 5
瀏覽器戰爭 5
1.5 script標籤 6
1.6 DOM簡介 7
1.6.1 W3C和標準兼容 7
1.6.2 window和document
對象 7
1.6.3 對象表示法 8
1.7 與用戶互動 9
1.7.1 window.alert() 9
1.7.2 document.write() 10
1.7.3 讀取document對象
的屬性 11
1.8 小結 12
1.9 問答 12
1.10 作業 12
1.10.1 測驗 12
1.10.2 答案 13
1.11 練習 13
第2章 創建簡單的腳本 14
2.1 在Web頁面里添加JavaScript 14
2.2 JavaScript語句 16
代碼注釋 16
2.3 變數 17
2.4 操作符 18
2.4.1 算術操作符 18
2.4.2 操作符優先權 19
2.4.3 對字元串使用
操作符“+” 19
2.5 捕獲滑鼠事件 20
2.5.1 onClick事件處理器 21
2.5.2 onMouseOver和onMouseOut
事件處理器 22
2.6 小結 24
2.7 問答 24
2.8 作業 24
2.8.1 測驗 24
2.8.2 答案 25
2.9 練習 25
第3章 使用函式 26
3.1 基本語法 26
3.2 調用函式 27
把JavaScript代碼放置到頁面
的head區域 27
3.3 給函式傳遞參數 28
多參數 29
3.4 從函式返回值 31
3.5 變數作用域 32
3.6 小結 33
3.7 問答 34
3.8 作業 34
3.8.1 測驗 34
3.8.2 答案 34
3.9 練習 35
第二部分 JavaScript編程
第4章 DOM對象和內置對象 39
4.1 與用戶互動 39
4.1.1 alert() 40
4.1.2 confirm() 40
4.1.3 prompt() 40
4.2 根據id選擇元素 41
innerHTML屬性 41
4.3 訪問瀏覽器歷史記錄 42
4.4 使用location對象 42
4.4.1 使用location對象導航 43
4.4.2 刷新頁面 43
4.5 瀏覽器信息:navigator對象 43
4.6 日期和時間 45
4.6.1 創建具有當前日期和
時間的Date對象 45
4.6.2 創建具有指定日期和
時間的Date對象 45
4.6.3 設定和編輯日期與時間 46
4.7 利用Math對象簡化運算 46
4.7.1 取整 47
4.7.2 獲得最大值和最小值 47
4.7.3 隨機數 47
4.7.4 數學常數 48
4.7.5 關鍵字with 48
4.8 小結 50
4.9 問答 51
4.10 作業 51
4.10.1 測驗 51
4.10.2 答案 52
4.11 練習 52
第5章 數字和字元串 53
5.1 數值 53
5.1.1 整數 54
5.1.2 浮點數 54
5.1.3 非數值(NaN) 54
5.1.4 使用parseFloat()和
parseInt() 55
5.1.5 無窮大(Infinity) 55
5.2 字元串 55
5.2.1 轉義序列 55
5.2.2 字元串方法 56
5.3 布爾值 58
“非”操作符(!) 60
5.4 小結 60
5.5 問答 61
5.6 作業 61
5.6.1 測驗 61
5.6.2 答案 61
5.7 練習 62
第6章 數組 63
6.1 數組 63
6.1.1 創建新數組 63
6.1.2 初始化數組 64
6.1.3 數組的方法 64
6.2 小結 67
6.3 問答 67
6.4 作業 68
6.4.1 測驗 68
6.4.2 答案 68
6.5 練習 68
第7章 程式控制 69
7.1 條件語句 69
7.1.1 if()語句 69
7.1.2 比較操作符 70
7.1.3 測試相等性 72
7.1.4 if進階 73
7.1.5 測試多個條件 73
7.1.6 switch語句 74
7.1.7 邏輯操作符 74
7.2 循環和控制結構 75
7.2.1 while 75
7.2.2 do…while 75
7.2.3 for 76
7.2.4 使用break跳出循環 76
7.2.5 利用for…in在對象集裡循環 77
7.3 設定和使用定時器 78
7.4 小結 78
7.5 問答 79
7.6 作業 79
7.6.1 測驗 79
7.6.2 答案 79
7.7 練習 80
第三部分 對象
第8章 面向對象編程 83
8.1 什麼是面向對象編程(OOP) 83
8.2 創建對象 84
8.2.1 創建直接實例 85
8.2.2 使用關鍵字this 85
8.2.3 匿名函式 87
8.2.4 使用構造函式 87
8.2.5 對象實例化 88
8.2.6 構造函式參數 89
8.3 使用prototype擴展和繼承對象 90
8.3.1 擴展對象 90
8.3.2 繼承 91
8.4 封裝 93
8.5 使用功能檢測 93
8.6 小結 94
8.7 問答 95
8.8 作業 95
8.8.1 測驗 95
8.8.2 答案 95
8.9 練習 96
第9章 遍歷DOM 97
9.1 DOM節點 98
9.1.1 節點類型 99
9.1.2 childNodes屬性 100
9.1.3 firstChild和lastChild 101
9.1.4 parentNode屬性 101
9.1.5 nextSibling和
previousSibling 101
9.1.6 節點值 102
9.1.7 節點名稱 102
9.2 利用getElementsByTagName()
選擇元素 102
9.3 讀取元素的屬性 104
9.4 Mozilla的DOM查看器 105
9.4.1 創建節點 105
9.4.2 操作子節點 107
9.4.3 編輯元素屬性 110
9.4.4 動態載入JavaScript
檔案 110
9.5 小結 115
9.6 問答 115
9.7 作業 115
9.7.1 測驗 116
9.7.2 答案 116
9.8 練習 117
第10章 JSON簡介 118
10.1 JSON是什麼 118
JSON語法 119
10.2 訪問JSON數據 119
10.2.1 使用eval() 120
10.2.2 使用瀏覽器對JSON
直接支持 120
10.3 JSON的數據序列化 121
10.4 JSON數據類型 122
10.5 模擬關聯數組 123
10.6 使用JSON創建對象 123
10.6.1 屬性 124
10.6.2 方法 124
10.6.3 數組 125
10.6.4 對象 125
10.7 JSON安全性 127
10.8 小結 127
10.9 問答 127
10.10 作業 127
10.10.1 測驗 127
10.10.2 答案 128
10.11 練習 128
第四部分 HTML與CSS
第11章 HTML5與JavaScript 131
11.1 HTML5的新標籤 132
11.2 一些重要的新元素 132
11.2.1 使用video回放
視頻 132
11.2.2 利用canPlayType()
測試可用的格式 133
11.2.3 控制回放 134
11.2.4 用audio標籤播放
聲音 134
11.2.5 利用canvas在頁面
上繪圖 135
11.3 拖放 137
11.4 本地存儲 140
11.5 操作本地檔案 140
查看瀏覽器的支持情況 140
11.6 小結 142
11.7 回答 143
11.8 作業 143
11.8.1 測驗 143
11.8.2 答案 143
11.9 練習 144
第12章 JavaScript和CSS 145
12.1 CSS簡介 145
12.1.1 從內容分離樣式 146
12.1.2 CSS樣式聲明 146
12.1.3 在哪裡保存樣式聲明 147
12.2 DOM的style屬性 147
12.3 使用className訪問類 150
12.4 DOM的styleSheets對象 152
啟用、禁用和切換樣式表 152
12.5 小結 156
12.6 問答 156
12.7 作業 156
12.7.1 測驗 157
12.7.2 答案 157
12.8 練習 157
第13章 CSS3簡介 158
13.1 特定廠商的屬性和前綴 158
13.2 CSS3框線 159
13.2.1 創建框線陰影 160
13.2.2 用border-radius屬性
實現圓角 160
13.3 CSS3背景 161
13.3.1 background-size
屬性 161
13.3.2 background-origin
屬性 162
13.3.3 多背景圖像 162
13.4 CSS3漸變 163
13.4.1 線性漸變 163
13.4.2 放射漸變 164
13.5 CSS3文本效果 165
13.5.1 文本陰影 165
13.5.2 單詞換行 165
13.6 CSS3過渡、變換和動畫 165
13.7 在JavaScript中引用CSS3
屬性 166
13.7.1 將CSS屬性名轉換
到JavaScript中 166
13.7.2 DOM getComputed Style()
方法 167
13.8 設定帶有廠商前綴的CSS3
屬性 168
13.9 小結 169
13.10 問答 169
13.11 作業 170
13.11.1 測驗題 170
13.11.2 答案 170
13.12 練習 170
第五部分 使用Java Script庫
第14章 庫 173
14.1 為什麼要使用庫 173
14.2 庫能做什麼 174
14.3 常見的庫 174
14.3.1 Prototype框架 174
14.3.2 Dojo 175
14.3.3 Yahoo! UI 175
14.3.4 MooTools 175
14.3.5 jQuery 175
14.4 prototype.js介紹 175
14.4.1 $()函式 176
14.4.2 $F()函式 176
14.4.3 Form對象 176
14.5 小結 178
14.6 問答 179
14.7 作業 179
14.7.1 測驗 179
14.7.2 答案 179
14.8 練習 180
第15章 jQuery入門 181
15.1 在頁面里引用jQuery 181
15.1.1 下載jQuery 182
15.1.2 使用遠程方式 182
15.2 jQuery的$(document).ready
處理器 182
15.3 選擇頁面元素 183
15.4 操作HTML內容 183
15.5 顯示和隱藏元素 184
15.6 元素動畫 185
15.6.1 淡入淡出 185
15.6.2 滑動 186
15.6.3 動畫 186
15.7 命令鏈 186
15.8 處理事件 189
15.9 小結 190
15.10 問答 190
15.11 作業 190
15.11.1 測驗 190
15.11.2 答案 191
15.12 練習 191
第16章 jQuery UI庫 192
16.1 jQuery UI是什麼 192
16.2 如何在頁面里引用jQuery UI 193
使用ThemeRoller 193
16.3 互動 193
16.3.1 拖和放 193
16.3.2 調整大小 196
16.3.3 排序 197
16.4 使用微件 198
16.4.1 可摺疊控制項 198
16.4.2 日期拾取器 199
16.4.3 選項卡 200
16.5 小結 202
16.6 問答 202
16.7 作業 202
16.7.1 測驗 202
16.7.2 答案 202
16.8 練習 203
第17章 Ajax和jQuery 204
17.1 Ajax解析 204
17.1.1 Ajax入門 205
17.1.2 XMLHttpRequest
對象 205
17.1.3 不同瀏覽器的不同
規則 205
17.1.4 方法和屬性 206
17.1.5 與伺服器通信 206
17.1.6 在伺服器端發生了什麼 207
17.1.7 處理伺服器回響 207
17.2 使用jQuery實現Ajax 207
17.3 小結 210
17.4 問答 210
17.5 作業 211
17.5.1 測驗 211
17.5.2 答案 211
17.6 練習 211
第六部分 高級話題
第18章 讀取和寫入cookie 215
18.1 什麼是cookie 215
cookie的局限 216
18.2 document.cookie屬性 216
數據的編碼和解碼 216
18.3 cookie組成 217
18.4 編寫cookie 218
18.5 編寫cookie的函式 218
18.6 讀取cookie 220
18.7 刪除cookie 221
18.8 在一個cookie里設定
多個值 224
18.9 小結 225
18.10 問答 225
18.11 作業 225
18.11.1 測驗 225
18.11.2 答案 226
18.12 練習 226
第19章 JavaScript新功能 227
19.1 類 227
19.2 箭頭函式 228
19.3 模組 229
19.4 使用let和const 230
19.5 模板字元串 232
19.6 使用for-of訪問數組 232
19.7 Transpilation 233
19.8 小結 233
19.9 問答 233
19.10 作業 233
19.10.1 測驗 234
19.10.2 答案 234
19.11 練習 234
第20章 使用框架 235
20.1 軟體框架 235
20.1.1 為何要使用框架 235
20.1.2 框架和庫不同 236
20.2 模型-視圖-控制器(MVC)
架構 236
20.2.1 模型 236
20.2.2 視圖 236
20.2.3 控制器 236
20.3 針對Web APP使用MVC
框架 237
20.4 AngularJS框架 237
20.4.1 AngularJS概覽 237
20.4.2 在頁面中包含
AngularJS 237
20.4.3 用ng-指令擴展
HTML 238
20.4.4 作用域 239
20.4.5 指令 239
20.4.6 表達式 240
20.4.7 過濾器 240
20.4.8 給指令添加一個
過濾器 241
20.5 構建一個AngularJS
應用程式 241
20.6 小結 244
20.7 問答 245
20.8 作業 245
20.8.1 測驗 245
20.8.2 答案 245
20.9 練習 246
第21章 Web頁面之外的JavaScript 247
21.1 瀏覽器之外的JavaScript 247
21.2 編寫Google Chrome擴展 248
21.2.1 建立簡單的擴展
程式 248
21.2.2 調試擴展程式 250
21.3 下一步 255
21.4 小結 255
21.5 問答 255
21.6 作業 255
21.6.1 測驗 255
21.6.2 答案 256
21.7 練習 256
第七部分 專業技能
第22章 良好的編程習慣 259
22.1 避免過度使用JavaScript 259
22.2 編寫易讀和易維護的代碼 260
22.2.1 明智地使用注釋 260
22.2.2 使用適當的檔案名稱稱、
屬性名稱和方法名稱 261
22.2.3 儘量復用代碼 261
22.2.4 不要假設 262
22.3 平穩退化 262
22.4 漸進增強 263
分離樣式、內容和代碼 263
22.5 代碼分離的JavaScript 264
22.5.1 脫離HTML 264
22.5.2 僅把JavaScript作為
性能增強手段 264
22.6 功能檢測 265
22.7 妥善處理錯誤 266
使用try和catch 266
22.8 小結 269
22.9 問答 269
22.10 作業 270
22.10.1 測驗 270
22.10.2 答案 270
22.11 練習 270
第23章 調試代碼 271
23.1 調試簡介 271
23.1.1 錯誤類型 271
23.1.2 選擇程式設計師的編輯器 272
23.1.3 使用alert()進行簡單
調試 272
23.2 更高級的調試 273
23.2.1 控制台 273
23.2.2 分組訊息 279
23.2.3 使用斷點停止代碼
執行 280
23.2.4 條件性斷點 281
23.2.5 從代碼中啟動調試器 281
23.2.6 監視表達式 282
23.2.7 驗證JavaScript 282
23.3 小結 282
23.4 問答 282
23.5 作業 283
23.5.1 測驗 283
23.5.2 答案 283
23.6 練習 283
第24章 JavaScript單元測試 284
24.1 什麼是單元測試 284
24.2 編寫JavaScript進行單元
測試 287
重構代碼 287
24.3 QUnit測試套件 287
24.3.1 安裝QUnit 288
24.3.2 最小化的QUnit安裝 288
24.3.3 重新測試addTax()
函式 289
24.4 小結 290
24.5 問答 290
24.6 作業 291
24.6.1 測驗 291
24.6.2 答案 291
24.7 練習 291
第八部分 Java Script遊戲編程
第25章 用JavaScript編寫Minecraft
模組 295
25.1 什麼是Minecraft模組 296
ScriptCraft 296
25.2 安裝一個CanaryMod伺服器 296
25.2.1 測試CanaryMod
伺服器 297
25.2.2 安裝ScriptCraft 298
25.2.3 連線到伺服器 298
25.3 “Modolith”——你的第一個
Minecraft模組 299
25.4 ScriptCraftdrone 300
25.4.1 移動drone 300
25.4.2 構建一個小木屋 301
25.5 用ScriptCraft創建一個JS
外掛程式 301
25.6 使用事件編程 304
25.7 小結 305
25.8 問答 305
25.9 作業 306
25.9.1 測驗 306
25.9.2 答案 306
25.10 練習 306
第26章 使用EaselJS進行遊戲編程 307
26.1 EaselJS簡介 307
26.1.1 下載EaselJS 308
26.1.2 在你的頁面中包含
EaselJS 308
26.2 舞台 308
26.2.1 設定舞台 308
26.2.2 Text對象 308
26.2.3 圖像 309
26.2.4 更新舞台 309
26.3 渲染畫布 309
26.4 對圖像實現動畫 311
26.4.1 Ticker對象 311
26.4.2 創建tick()函式 311
26.4.3 處理鍵盤輸入 313
26.4.4 添加炮彈 313
26.4.5 一些遊戲邏輯 314
26.4.6 最終遊戲代碼 318
26.4.7 進一步改進遊戲 321
26.5 小結 321
26.6 問答 321
26.7 作業 322
26.7.1 測驗 322
26.7.2 答案 322
26.8 練習 322
附錄A JavaScript開發工具 323
A.1 編輯器 323
A.1.1 Notepad++ 323
A.1.2 jEdit 323
A.1.3 SciTE 324
A.1.4 Geany 324
A.2 驗證程式 324
A.2.1 W3C驗證服務 324
A.2.2 Web設計組(WDG) 324
A.3 調試與檢驗工具 324
A.3.1 Firebug 325
A.3.2 JSLint 325
附錄B JavaScript快速參考 326