第1章 計算的概念 1
1.1 計算是一門自然科學 1
1.2 計算的五大學科 2
1.2.1 計算機科學 2
1.2.2 軟件工程 2
1.2.3 計算機工程 2
1.2.4 信息技術 3
1.2.5 信息係統 3
1.3 與計算相關的職業 3
1.4 關於計算的誤解 4
1.5 本章小結 5
1.6 練習 5
第2章 編程 7
2.1 學習編程 7
2.2 基本概念 7
2.2.1 瀏覽器地址欄 8
2.2.2 運行器頁麵 8
2.2.3 交互式命令行 10
2.2.4 文件 12
2.3 程序的構成 16
2.3.1 錶達式 16
2.3.2 變量 17
2.3.3 語句 20
2.4 編程慣例 21
2.4.1 注釋 21
2.4.2 編碼約定 22
2.4.3 代碼質量檢查工具 23
2.5 JavaScript編程語言 24
2.6 本章小結 24
2.7 練習 25
第3章 數據 28
3.1 數據類型 28
3.2 真值 28
3.3 數值 29
3.3.1 數值運算 30
3.3.2 大小和精度的限製 30
3.3.3 NaN 31
3.3.4 十六進製數值 31
3.4 文本 32
3.4.1 字符、符號與字符集 32
3.4.2 字符串操作 35
3.5 undefined與null 36
3.6 對象 37
3.6.1 對象基礎 37
3.6.2 理解對象引用 38
3.6.3 對象原型 40
3.6.4 自引用對象 41
3.7 數組 41
3.8 類型轉換 44
3.8.1 弱類型 44
3.8.2 顯式轉換 45
3.8.3 鬆散相等操作符 47
3.9 typeof操作符* 47
3.10 本章小結 48
3.11 練習 48
第4章 語句 52
4.1 聲明語句 52
4.2 錶達式語句 52
4.3 條件執行 54
4.3.1 if語句 54
4.3.2 條件錶達式 56
4.3.3 switch語句 56
4.3.4 用查詢避免條件代碼 58
4.3.5 短路執行 61
4.4 迭代 62
4.4.1 while和do-while語句 62
4.4.2 for語句 63
4.4.3 for-in語句 67
4.5 中斷 68
4.5.1 break和continue 69
4.5.2 異常 70
4.6 應該避免的編碼風格 72
4.6.1 不分塊的復閤語句 72
4.6.2 隱式分號 73
4.6.3 隱式聲明 74
4.6.4 遞增和遞減運算符 74
4.6.5 with語句 74
4.7 本章小結 74
4.8 練習 75
第5章 函數 78
5.1 黑盒 78
5.2 定義和調用函數 78
5.3 示例 80
5.3.1 簡單的一行函數 80
5.3.2 驗證實參 81
5.3.3 將對象引用作為參數傳送 82
5.3.4 先決條件 83
5.3.5 關注點的分離 85
5.3.6 斐波那契數列 86
5.4 作用域 87
5.5 作為對象的函數 89
5.5.1 函數的屬性 89
5.5.2 作為屬性的函數 89
5.5.3 構造器 90
5.6 上下文 95
5.7 高階函數 96
5.8 函數聲明與函數錶達式* 98
5.9 本章小結 99
5.10 練習 100
第6章 事件 105
6.1 用戶互動 105
6.1.1 程序設計範例轉移 105
6.1.2 事件舉例:溫度轉換Web頁麵 106
6.2 定義用戶界麵元素 107
6.2.1 Web頁麵是結構化文檔 108
6.2.2 生成用戶界麵控件的元素 109
6.3 以編程方式訪問用戶界麵元素 112
6.3.1 document對象 112
6.3.2 DOM屬性的樂趣 114
6.3.3 一個“玩耍”的地方 115
6.3.4 操控用戶界麵控件 116
6.3.5 遍曆DOM* 118
6.4 事件處理程序 122
6.4.1 事件處理程序的骨架 122
6.4.2 事件處理程序是函數,是對象 123
6.5 事件對象 125
6.6 事件實現細節 126
6.6.1 事件捕獲與冒泡 126
6.6.2 默認操作 127
6.6.3 指定事件處理程序 129
6.6.4 時間流逝觸發的事件 130
6.6.5 多點觸摸、手勢和物理事件 131
6.7 案例研究:井字棋 135
6.7.1 文件與連接 135
6.7.2 初始化 137
6.7.3 事件處理 139
6.7.4 業務邏輯 139
6.8 本章小結 140
6.9 練習 140
第7章 軟件構架 146
7.1 軟件工程活動 146
7.2 麵嚮對象的設計與編程 146
7.2.1 對象族 147
7.2.2 繼承 149
7.2.3 信息隱藏 153
7.2.4 屬性描述符* 155
7.3 JavaScript標準對象 157
7.3.1 內置對象 157
7.3.2 Web瀏覽器宿主對象 166
7.4 模塊 166
7.4.1 簡單模塊 167
7.4.2 作為模塊的井字棋遊戲 168
7.5 jQuery JavaScript庫 171
7.6 性能 175
7.6.1 運行時效率 175
7.6.2 空間效率 177
7.6.3 加載時間效率 178
7.6.4 用戶界麵效率 179
7.7 單元測試 181
7.7.1 一個簡單的例子 182
7.7.2 QUnit測試框架 183
7.7.3 軟件開發過程中的測試 186
7.8 本章小結 187
7.9 練習 187
第8章 分布式計算 193
8.1 分布式計算模型 193
8.2 數據交互格式 194
8.2.1 純文本 194
8.2.2 XML 195
8.2.3 JSON 198
8.2.4 YAML 200
8.3 同步通信與異步通信 201
8.4 Ajax 202
8.4.1 jQuery中的Ajax 202
8.4.2 沒有庫的Ajax 206
8.5 設計分布式應用程序 208
8.5.1 統一資源標識符 208
8.5.2 REST 211
8.5.3 分布式應用程序關注點的分離 213
8.5.4 服務器端技術* 216
8.6 安全性 217
8.6.1 Web、不利因素和沙盒 217
8.6.2 同源策略 218
8.6.3 跨站腳本 222
8.6.4 mashup 224
8.7 案例研究:事件與趨勢主題 225
8.7.1 日期選擇用戶界麵 229
8.7.2 Ajax連接 230
8.7.3 結果處理 232
8.7.4 數據(mashup)顯示 234
8.8 本章小結 235
8.9 練習 236
第9章 圖形與動畫 246
9.1 基礎知識 246
9.1.1 坐標空間 246
9.1.2 色彩 247
9.1.3 像素與對象/矢量 248
9.1.4 動畫 250
9.2 HTML和CSS 250
9.2.1 圖形的HTML元素 250
9.2.2 CSS 251
9.2.3 可視屬性 254
9.2.4 絕對位置 257
9.2.5 案例研究:條形圖 258
9.2.6 案例研究:漢諾塔顯示 259
9.3 HTML和CSS中的動畫 262
9.3.1 恒定速度 262
9.3.2 淡入與淡齣 263
9.3.3 實現其他屬性的動畫 264
9.3.4 緩動動畫 264
9.3.5 聲明性CSS動畫 265
9.4 canvas元素 266
9.4.1 實例化canvas 266
9.4.2 渲染上下文 266
9.4.3 繪製矩形 267
9.4.4 繪製直綫和多邊形 268
9.4.5 繪製弧和圓 269
9.4.6 繪製貝塞爾麯綫和二次麯綫 270
9.4.7 處理圖像 271
9.4.8 變換 274
9.4.9 動畫 278
9.4.10 canvas舉例 280
9.5 SVG 283
9.5.1 在Web瀏覽器中查看SVG 284
9.5.2 SVG案例研究:一個貝塞爾麯綫編輯器 286
9.5.3 繪畫中的對象 287
9.5.4 讀寫屬性 287
9.5.5 交互性(事件處理歸來) 290
9.5.6 其他SVG功能 291
9.6 用WebGL實現3D圖形 292
9.6.1 WebGL是3D canvas 292
9.6.2 案例研究:謝爾賓斯基三角 293
9.6.3 定義3D數據 295
9.6.4 著色器代碼 295
9.6.5 繪製場景 296
9.6.6 交互性與事件 297
9.7 其他客戶端圖形技術 299
9.7.1 Flash 299
9.7.2 Java 299
9.7.3 VML 300
9.8 本章小結 300
9.9 練習 300
第10章 高級主題 310
10.1 正則錶達式 310
10.1.1 正則錶達式簡介 310
10.1.2 捕獲 311
10.1.3 數量詞 312
10.1.4 嚮後引用 313
10.1.5 正則錶達式修飾符 313
10.1.6 RegExp構造器 314
10.1.7 正則錶達式的更多內容 314
10.2 遞歸 314
10.2.1 什麼是遞歸 315
10.2.2 遞歸經典示例 316
10.2.3 遞歸與傢族樹 322
10.2.4 什麼時候不用遞歸 324
10.3 緩存 325
10.4 MapReduce 327
10.4.1 使用map、filter和reduce 327
10.4.2 實現 329
10.4.3 大規模數據處理中的MapReduce 330
10.5 動態創建事件處理程序 330
10.6 本章小結 333
10.7 練習 333
附錄A JavaScript語言參考 337
附錄B 數值編碼 352
附錄C Unicode 355
術語錶 363
參考文獻 366
· · · · · · (
收起)
評分
☆☆☆☆☆
语言翻译的很流畅,讲得前几章完全是为了电脑小白准备的。后面的图例说明也不错。内容讲的听清楚。 到了后面涉及到HTML5的内容。就是有不少篇幅写的是练习题,平时应该没啥人会去做???? 数据类型讲得挺简洁。作为新书,适合新人。可以随便翻翻就当做入个门。要深入理解还是得看...
評分
☆☆☆☆☆
语言翻译的很流畅,讲得前几章完全是为了电脑小白准备的。后面的图例说明也不错。内容讲的听清楚。 到了后面涉及到HTML5的内容。就是有不少篇幅写的是练习题,平时应该没啥人会去做???? 数据类型讲得挺简洁。作为新书,适合新人。可以随便翻翻就当做入个门。要深入理解还是得看...
評分
☆☆☆☆☆
语言翻译的很流畅,讲得前几章完全是为了电脑小白准备的。后面的图例说明也不错。内容讲的听清楚。 到了后面涉及到HTML5的内容。就是有不少篇幅写的是练习题,平时应该没啥人会去做???? 数据类型讲得挺简洁。作为新书,适合新人。可以随便翻翻就当做入个门。要深入理解还是得看...
評分
☆☆☆☆☆
语言翻译的很流畅,讲得前几章完全是为了电脑小白准备的。后面的图例说明也不错。内容讲的听清楚。 到了后面涉及到HTML5的内容。就是有不少篇幅写的是练习题,平时应该没啥人会去做???? 数据类型讲得挺简洁。作为新书,适合新人。可以随便翻翻就当做入个门。要深入理解还是得看...
評分
☆☆☆☆☆
语言翻译的很流畅,讲得前几章完全是为了电脑小白准备的。后面的图例说明也不错。内容讲的听清楚。 到了后面涉及到HTML5的内容。就是有不少篇幅写的是练习题,平时应该没啥人会去做???? 数据类型讲得挺简洁。作为新书,适合新人。可以随便翻翻就当做入个门。要深入理解还是得看...