第1章 引言 1
1.1 迴顧曆史 1
1.2 變革之風 3
1.3 分析現狀 3
1.4 展望未來 4
1.5 麵嚮對象程序設計 5
1.5.1 對象 5
1.5.2 類 6
1.5.3 封裝 6
1.5.4 聚閤 7
1.5.5 繼承 7
1.5.6 多態 8
1.6 OOP概述 8
1.7 訓練環境設置 9
1.8 使用Firebug控製颱 10
1.9 本章小結 11
第2章 基本數據類型、數組、循環及條件錶達式 13
2.1 變量 13
2.2 操作符 15
2.3 基本數據類型 18
2.3.1 查看類型操作符——typeof 19
2.3.2 數字 19
2.3.3 字符串 23
2.3.4 布爾值 26
2.3.5 Undefined與null 32
2.4 基本數據類型綜述 34
2.5 數組 35
2.5.1 增加、更新數組元素 36
2.5.2 刪除元素 36
2.5.3 數組的數組 37
2.6 條件與循環 38
2.6.1 代碼塊 38
2.6.2 循環 44
2.7 注釋 49
2.8 本章小結 49
2.9 練習題 50
第3章 函數 52
3.1 什麼是函數 53
3.1.1 調用函數 53
3.1.2 參數 53
3.2 預定義函數 55
3.2.1 parseInt() 56
3.2.2 parseFloat() 57
3.2.3 isNaN() 58
3.2.4 isFinite() 58
3.2.5 URI的編碼與反編碼 59
3.2.6 eval() 59
3.2.7 一點驚喜—alert()函數 60
3.3 變量的作用域 60
3.4 函數也是數據 62
3.4.1 匿名函數 63
3.4.2 迴調函數 64
3.4.3 迴調示例 65
3.4.4 自調函數 66
3.4.5 內部(私有)函數 67
3.4.6 返迴函數的函數 68
3.4.7 能重寫自己的函數 68
3.5 閉包 70
3.5.1 作用域鏈 70
3.5.2 詞法作用域 71
3.5.3 利用閉包突破作用域鏈 72
3.5.4 Getter與Setter 78
3.5.5 迭代器 79
3.6 本章小結 80
3.7 練習題 80
第4章 對象 82
4.1 從數組到對象 82
4.1.1 元素、屬性、方法 84
4.1.2 哈希錶、關聯型數組 85
4.1.3 訪問對象的屬性 85
4.1.4 調用對象的方法 86
4.1.5 修改屬性與方法 87
4.1.6 使用this值 88
4.1.7 構造器函數 88
4.1.8 全局對象 90
4.1.9 構造器屬性 91
4.1.10 instanceof操作符 92
4.1.11 返迴對象的函數 92
4.1.12 傳遞對象 93
4.1.13 對象比較 94
4.1.14 Firebug控製颱中的對象 95
4.2 內建對象 96
4.2.1 Object 97
4.2.2 Array 98
4.2.3 Function 102
4.2.4 Boolean 107
4.2.5 Number 109
4.2.6 String 110
4.2.7 Math 115
4.2.8 Date 117
4.2.9 RegExp 121
4.2.10 Error對象 127
4.3 本章小結 131
4.4 練習題 132
第5章 原型 135
5.1 原型屬性 135
5.1.1 利用原型添加方法與屬性 136
5.1.2 使用原型的方法與屬性 137
5.1.3 自身屬性與原型屬性 138
5.1.4 利用自身屬性重寫原型屬性 139
5.1.5 isPrototypeOf()方法 143
5.1.6 神秘的_proto_鏈接 143
5.2 擴展內建對象 145
5.2.1 關於擴展內建對象的討論 146
5.2.2 一些原型陷阱 147
5.3 本章小結 150
5.4 練習題 150
第6章 繼承 152
6.1 原型鏈 152
6.1.1 原型鏈示例 153
6.1.2 將共享屬性遷移到原型中去 156
6.2 隻繼承於原型 158
6.3 uber—子對象訪問父對象的方式 161
6.4 將繼承部分封裝成函數 163
6.5 屬性拷貝 163
6.6 小心處理引用拷貝 165
6.7 對象之間的繼承 167
6.8 深拷貝 169
6.9 object() 171
6.10 原型繼承與屬性拷貝的混閤應用 172
6.11 多重繼承 173
6.12 寄生式繼承 175
6.13 構造器藉用 176
6.14 本章小結 179
6.15 案例學習:圖形繪製 183
6.15.1 分析 183
6.15.2 實現 184
6.15.3 測試 188
6.16 練習題 189
第7章 瀏覽器環境 190
7.1 在HTML頁麵中引入JavaScript代碼 190
7.2 概述:BOM與DOM 191
7.3 BOM 192
7.3.1 window對象再探 192
7.3.2 window.navigator 193
7.3.3 Firebug的備忘功能 193
7.3.4 window.location 194
7.3.5 window.history 195
7.3.6 window.frames 196
7.3.7 window.screen 197
7.3.8 window.open()/close() 198
7.3.9 window.moveTo()、window.resizeTo() 199
7.3.10 window.alert()、window.prompt()、window.confirm() 199
7.3.11 window.setTimeout()、window.setInterval() 201
7.3.12 window.document 202
7.4 DOM 202
7.4.1 Core DOM與HTML DOM 204
7.4.2 DOM節點的訪問 206
7.4.3 DOM節點的修改 215
7.4.4 新建節點 218
7.4.5 移除節點 221
7.4.6 隻適用於HTML的DOM對象 223
7.5 事件 227
7.5.1 內聯HTML屬性法 227
7.5.2 元素屬性法 227
7.5.3 DOM的事件監聽器 228
7.5.4 捕捉法與冒泡法 229
7.5.5 阻斷傳播 231
7.5.6 防止默認行為 233
7.5.7 跨瀏覽器事件監聽器 233
7.5.8 事件類型 235
7.6 XMLHttpRequest對象 236
7.6.1 發送請求 236
7.6.2 處理響應 237
7.6.3 在早於7的IE版本中創建XMLHttpRequest對象 238
7.6.4 A代錶異步 239
7.6.5 X代錶XML 240
7.6.6 實例示範 240
7.7 本章小結 242
7.8 練習題 244
第8章 編程模式與設計模式 247
8.1 編程模式 248
8.1.1 行為隔離 248
8.1.2 命名空間 250
8.1.3 初始化分支 253
8.1.4 延遲定義 254
8.1.5 配置對象 255
8.1.6 私有屬性和方法 257
8.1.7 特權函數 258
8.1.8 私有函數的公有化 258
8.1.9 自執行函數 259
8.1.10 鏈式調用 260
8.1.11 JSON 261
8.2 設計模式 262
8.2.1 單件模式1 263
8.2.2 單件模式2 263
8.2.3 工廠模式 264
8.2.4 裝飾器模式 266
8.2.5 觀察者模式 269
8.3 本章小結 272
附錄A 保留字 273
附錄B 內建函數 276
附錄C 內建對象 279
附錄D 正則錶達式 305
· · · · · · (
收起)