JavaScript編程全解

JavaScript編程全解

《JavaScript編程全解》是2017年3月人民郵電出版社出版的圖書,作者是[日]井上誠一郎、土江拓郎、濱邊將太。

基本介紹

  • 中文名:JavaScript編程全解
  • 作者:[日]井上誠一郎、土江拓郎、濱邊將太
  • 出版時間:2017年3月
  • 出版社人民郵電出版社
  • 頁數:406 頁
  • ISBN:9787115333414
  • 定價:79 元
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,

內容簡介

《JavaScript編程全解》涵蓋了JavaScript開發中各個方面的主題,對從客戶端及伺服器端JavaScript等基礎內容,到HTML5、Web API、Node.js與WebSocket等熱門技術,都作了深入淺出的介紹與說明。讀者能夠通過本書了解當今JavaScript開發的最新現狀。《JavaScript編程全解》的一大特色是對JavaScript語言的語法規則進行了細緻的說明,並通過大量純正的JavaScript風格代碼,幫助讀者準確地掌握JavaScript的語言特性及細節用法。
《JavaScript編程全解》適合JavaScript開發初學者系統入門、有經驗的JavaScript開發者深入理解語言本質,也適合開發團隊負責人、項目負責人作為綜合性的JavaScript參考書閱讀。

圖書目錄

第 1部分 JavaScript概要 001
第 1章 JavaScript概要 002
1.1 JavaScript概要 002
1.2 JavaScript的歷史 002
1.3 ECMAScript 003
1.3.1 JavaScript的標準化 003
1.3.2 被放棄的ECMAScript第4版 004
1.4 JavaScript的版本 004
1.5 JavaScript實現方式 005
1.6 JavaScript運行環境 006
1.6.1 核心語言 006
1.6.2 宿主對象 007
1.7 JavaScript相關環境 007
1.7.1 庫 007
1.7.2 原始碼壓縮 007
1.7.3 集成開發環境 008
第 2部分 JavaScript的語言基礎 009
第 2章 JavaScript基礎 010
2.1 JavaScript的特點 010
2.2 關於編排格式 011
2.3 變數的基礎 012
2.3.1 變數的使用方法 012
2.3.2 省略var 013
2.3.3 常量 013
2.4 函式基礎 013
2.4.1 函式的定義 013
2.4.2 函式的聲明與調用 014
2.4.3 匿名函式 014
2.4.4 函式是一種對象 015
2.5 對象的基礎 016
2.5.1 對象的定義 016
2.5.2 對象字面量表達式與對象的使用 016
2.5.3 屬性訪問 017
2.5.4 屬性訪問(括弧方式) 017
2.5.5 方法 018
2.5.6 new表達式 018
2.5.7 類與實例 018
2.5.8 對類的功能的整理 018
2.5.9 對象與類型 019
2.6 數組的基礎 019
第3章 JavaScript的數據類型 021
3.1 數據類型的定義 021
3.1.1 在數據類型方面與Java作比較 021
3.1.2 基本數據類型和引用類型 022
3.2 內建數據類型概要 022
3.3 字元串型 023
3.3.1 字元串字面量 023
3.3.2 字元串型的運算 024
3.3.3 字元串型的比較 024
3.3.4 字元串類(String類) 025
3.3.5 字元串對象 026
3.3.6 避免混用字元串值和字元串對象 027
3.3.7 調用String函式 027
3.3.8 String類的功能 027
3.3.9 非破壞性的方法 029
3.4 數值型 029
3.4.1 數值字面量 029
3.4.2 數值型的運算 030
3.4.3 有關浮點數的常見注意事項 030
3.4.4 數值類(Number類) 031
3.4.5 調用Number函式 031
3.4.6 Number類的功能 032
3.4.7 邊界值與特殊數值 033
3.4.8 NaN 034
3.5 布爾型 035
3.5.1 布爾值 035
3.5.2 布爾類(Boolean類) 036
3.5.3 Boolean類的功能 036
3.6 null型 037
3.7 undefined型 037
3.8 Object類型 038
3.9 數據類型轉換 039
3.9.1 從字元串值轉換為數值 039
3.9.2 從數值轉換為字元串值 040
3.9.3 數據類型轉換的慣用方法 040
3.9.4 轉換為布爾型 041
3.9.5 其他的數據類型轉換 042
3.9.6 從Object類型轉換為基本數據類型 042
3.9.7 從基本數據類型轉換為Object類型 043
第4章 語句、表達式和運算符 045
4.1 表達式和語句的構成 045
4.2 保留字 045
4.3 標識符 046
4.4 字面量 047
4.5 語句 047
4.6 代碼塊(複合語句) 048
4.7 變數聲明語句 048
4.8 函式聲明語句 048
4.9 表達式語句 048
4.10 空語句 049
4.11 控制語句 049
4.12 if-else語句 050
4.13 switch-case語句 052
4.14 循環語句 054
4.15 while語句 055
4.16 do-while語句 056
4.17 for語句 057
4.18 for in語句 058
4.18.1 數列與for in語句 059
4.18.2 在使用for in語句時需要注意的地方 060
4.19 for each in語句 060
4.20 break語句 061
4.21 continue語句 061
4.22 通過標籤跳轉 062
4.23 return語句 063
4.24 異常 063
4.25 其他 064
4.26 注釋 065
4.27 表達式 065
4.28 運算符 065
4.29 表達式求值 066
4.30 運算符的優先權以及結合律 066
4.31 算術運算符 067
4.32 字元串連線運算符 068
4.33 相等運算符 068
4.34 比較運算符 069
4.35 in運算符 070
4.36 instanceof運算符 071
4.37 邏輯運算符 071
4.38 位運算符 072
4.39 賦值運算符 072
4.40 算術賦值運算符 073
4.41 條件運算符(三目運算符) 073
4.42 typeof運算符 073
4.43 new運算符 074
4.44 delete運算符 074
4.45 void運算符 074
4.46 逗號(,)運算符 074
4.47 點運算符和中括弧運算符 075
4.48 函式調用運算符 075
4.49 運算符使用以及數據類型轉換中需要注意的地方 075
第5章 變數與對象 076
5.1 變數的聲明 076
5.2 變數與引用 076
5.2.1 函式的參數(值的傳遞) 078
5.2.2 字元串與引用 079
5.2.3 對象與引用相關的術語總結 079
5.3 變數與屬性 080
5.4 變數的查找 081
5.5 對變數是否存在的檢驗 081
5.6 對象的定義 082
5.6.1 抽象數據類型與面向對象 082
5.6.2 實例間的協作關係與面向對象 083
5.6.3 JavaScript的對象 083
5.7 對象的生成 083
5.7.1 對象字面量 083
5.7.2 構造函式與new表達式 085
5.7.3 構造函式與類的定義 087
5.8 屬性的訪問 087
5.8.1 屬性值的更新 088
5.8.2 點運算符與中括弧運算符在使用上的區別 088
5.8.3 屬性的枚舉 089
5.9 作為關聯數組的對象 089
5.9.1 關聯數組 089
5.9.2 作為關聯數組的對象的注意點 090
5.10 屬性的屬性 091
5.11 垃圾回收 092
5.12 不可變對象 092
5.12.1 不可變對象的定義 092
5.12.2 不可變對象的作用 092
5.12.3 實現不可變對象的方式 093
5.13 方法 094
5.14 this引用 094
5.14.1 this引用的規則 094
5.14.2 this引用的注意點 095
5.15 apply與call 096
5.16 原型繼承 097
5.16.1 原型鏈 097
5.16.2 原型鏈的具體示例 099
5.16.3 原型繼承與類 100
5.16.4 對於原型鏈的常見誤解以及_proto_屬性 100
5.16.5 原型對象 101
5.16.6 ECMAScript第5版與原型對象 101
5.17 對象與數據類型 102
5.17.1 數據類型判定(constructor屬性) 102
5.17.2 constructor屬性的注意點 102
5.17.3 數據類型判定(instance運算與isPrototypeOf方法) 103
5.17.4 數據類型判定(鴨子類型) 103
5.17.5 屬性的枚舉(原型繼承的相關問題) 104
5.18 ECMAScript第5版中的Object類 105
5.18.1 屬性對象 105
5.18.2 訪問器的屬性 106
5.19 標準對象 108
5.20 Object類 108
5.21 全局對象 110
5.21.1 全局對象與全局變數 110
5.21.2 Math對象 111
5.21.3 Error對象 112
第6章 函式與閉包 113
6.1 函式聲明語句與匿名函式表達式 113
6.2 函式調用的分類 113
6.3 參數與局部變數 114
6.3.1 arguments對象 114
6.3.2 遞歸函式 114
6.4 作用域 115
6.4.1 瀏覽器與作用域 116
6.4.2 塊級作用域 116
6.4.3 let與塊級作用域 117
6.4.4 嵌套函式與作用域 119
6.4.5 變數隱藏 119
6.5 函式是一種對象 120
6.6 Function類 122
6.7 嵌套函式聲明與閉包 123
6.7.1 對閉包的初步認識 123
6.7.2 閉包的原理 123
6.7.3 閉包中需要注意的地方 126
6.7.4 防範命名空間的污染 127
6.7.5 閉包與類 129
6.8 回調函式設計模式 130
6.8.1 回調函式與控制反轉 130
6.8.2 JavaScript與回調函式 131
第7章 數據處理 134
7.1 數組 134
7.1.1 JavaScript的數組 134
7.1.2 數組元素的訪問 135
7.1.3 數組的長度 136
7.1.4 數組元素的枚舉 136
7.1.5 多維數組 137
7.1.6 數組是一種對象 138
7.1.7 Array類 139
7.1.8 數組對象的意義 140
7.1.9 數組的習慣用法 141
7.1.10 數組的內部實現 144
7.1.11 數組風格的對象 145
7.1.12 疊代器 145
7.1.13 生成器 147
7.1.14 數組的內包 149
7.2 JSON 149
7.2.1 JSON字元串 149
7.2.2 JSON對象 150
7.3 日期處理 151
7.4 正則表達式 153
7.4.1 正則表達式的定義 153
7.4.2 正則表達式相關的術語 154
7.4.3 正則表達式的語法 154
7.4.4 JavaScript中的正則表達式156
7.4.5 正則表達式程式設計 157
7.4.6 字元串對象與正則表達式對象 158
第3部分 客戶端JavaScript 161
第8章 客戶端JavaScript與HTML 162
8.1 客戶端JavaScript的重要性 162
8.1.1 Web應用程式的發展 162
8.1.2 JavaScript的性能提升 162
8.1.3 JavaScript的作用 163
8.2 HTML與JavaScript 163
8.2.1 網頁顯示過程中的處理流程 163
8.2.2 JavaScript的表述方式及其執行流程 163
8.2.3 執行流程的小結 166
8.3 運行環境與開發環境 166
8.3.1 運行環境 166
8.3.2 開發環境 166
8.4 調試 167
8.4.1 alert 167
8.4.2 console 167
8.4.3 onerror 169
8.4.4 Firebug, Web Inspector(Developer Tools), Opera Dragonfly 169
8.5 跨瀏覽器支持 171
8.5.1 應當提供支持的瀏覽器 171
8.5.2 實現方法 172
8.6 Window對象 174
8.6.1 Navigator對象 174
8.6.2 Location對象 174
8.6.3 History對象 175
8.6.4 Screen對象 176
8.6.5 對Window對象的引用 176
8.6.6 Document對象 176
第9章 DOM 177
9.1 DOM的定義 177
9.1.1 DOM Level 1 177
9.1.2 DOM Level 2 177
9.1.3 DOM Level 3 178
9.1.4 DOM的表述方式 178
9.2 DOM的基礎 179
9.2.1 標籤、元素、節點 179
9.2.2 DOM操作 179
9.2.3 Document對象 179
9.3 節點的選擇 180
9.3.1 通過ID檢索 180
9.3.2 通過標籤名檢索 180
9.3.3 通過名稱檢索 184
9.3.4 通過類名檢索 184
9.3.5 父節點、子節點、兄弟節點 185
9.3.6 XPath 187
9.3.7 Selector API 189
9.4 節點的創建與新增 190
9.5 節點的內容更改 190
9.6 節點的刪除 190
9.7 innerHTML/textContent 190
9.7.1 innerHTML 190
9.7.2 textContent 191
9.8 DOM操作的性能 191
第 10章 事件 192
10.1 事件驅動程式設計 192
10.2 事件處理程式/事件偵聽器的設定 192
10.2.1 指定為HTML元素的屬性193
10.2.2 指定為DOM元素的屬性 194
10.2.3 通過EventTarget.addEventListener( )進行指定 194
10.2.4 事件處理程式/事件偵聽器內的this引用 196
10.3 事件的觸發 196
10.4 事件的傳播 196
10.4.1 捕獲階段 197
10.4.2 目標階段 197
10.4.3 事件冒泡階段 197
10.4.4 取消 197
10.5 事件所具有的元素 198
10.6 標準事件 199
10.6.1 DOM Level 2中所定義的事件 199
10.6.2 DOM Level 3中所定義的事件 200
10.7 自定義事件 202
第 11章 客戶端JavaScript實踐 203
11.1 樣式 203
11.1.1 樣式的變更方法 203
11.1.2 位置的設定 207
11.1.3 位置 208
11.1.4 動畫 209
11.2 AJAX 210
11.2.1 異步處理的優點 210
11.2.2 XMLHttpRequest 210
11.2.3 基本的處理流程 210
11.2.4 同步通信 212
11.2.5 逾時 212
11.2.6 回響 213
11.2.7 跨源限制 214
11.2.8 跨源通信 214
11.2.9 JSONP 214
11.2.10 iframe攻擊(iframe hack) 215
11.2.11 window.postMessage218
11.2.12 XMLHttpRequest Level 2 219
11.2.13 跨源通信的安全問題 219
11.3 表單 219
11.3.1 表單元素 219
11.3.2 表單控制項 221
11.3.3 內容驗證 221
11.3.4 可用於驗證的事件 222
11.3.5 使用表單而不產生頁面跳轉的方法 222
第 12章 庫 224
12.1 使用庫的原因 224
12.2 jQuery的特徵 224
12.3 jQuery的基本概念 225
12.3.1 使用實例 225
12.3.2 鏈式語法 226
12.4 $函式 227
12.4.1 抽取與選擇器相匹配的元素 227
12.4.2 創建新的DOM元素 227
12.4.3 將已有的DOM元素轉換為jQuery對象 227
12.4.4 對DOM構造完成後的事件偵聽器進行設定 227
12.5 通過jQuery進行DOM操作 228
12.5.1 元素的選擇 228
12.5.2 元素的創建·添加·替換·刪除 230
12.6 通過jQuery處理事件 231
12.6.1 事件偵聽器的註冊·刪除 231
12.6.2 事件專用的事件偵聽器註冊方法 232
12.6.3 ready( )方法 232
12.7 通過jQuery對樣式進行操作 233
12.7.1 基本的樣式操作 233
12.7.2 動畫 234
12.8 通過jQuery進行AJAX操作 235
12.8.1 AJAX( )函式 235
12.8.2 AJAX( )的包裝函式 236
12.8.3 全局事件 237
12.9 Deferred 237
12.9.1 Deferred的基本概念 237
12.9.2 狀態遷移 238
12.9.3 後續函式 239
12.9.4 並行處理 241
12.10 jQuery外掛程式 241
12.10.1 使用jQuery外掛程式 241
12.10.2 創建jQuery外掛程式 242
12.11 與其他庫共同使用 243
12.11.1 $對象的衝突 243
12.11.2 避免$對象的衝突 243
12.12 庫的使用方法 244
第4部分 HTML5 245
第 13章 HTML5概要 272
13.1 HTML5的歷史 246
13.2 HTML5的現狀 247
13.2.1 瀏覽器的支持情況 247
13.2.2 Web應用程式與原生應用程式 248
13.3 HTML5的概要 248
第 14章 Web應用程式 250
14.1 History API 250
14.1.1 History API的定義 250
14.1.2 哈希片段 250
14.1.3 接口 251
14.2 ApplicationCache 255
14.2.1 關於快取管理 255
14.2.2 快取清單檔案 255
14.2.3 ApplicationCache API 258
14.2.4 線上與離線 259
第 15章 與桌面套用的協作 260
15.1 Drag Drop API 260
15.1.1 Drag Drop API的定義 260
15.1.2 接口 261
15.1.3 基本的拖動與釋放 262
15.1.4 自定義顯示 263
15.1.5 檔案的Drag-In/Drag-Out 265
15.2 File API 267
15.2.1 File API的定義 267
15.2.2 File對象 267
15.2.3 FileReader 269
15.2.4 data URL 271
15.2.5 FileReaderSync 273
第 16章 存儲 274
16.1 Web Storage 274
16.1.1 Web Storage的定義 274
16.1.2 基本操作 275
16.1.3 storage事件 277
16.1.4 關於Cookie 277
16.1.5 命名空間的管理 278
16.1.6 版本的管理 279
16.1.7 對localStorage的模擬 279
16.2 Indexed Database 280
16.2.1 Indexed Database的定義 280
16.2.2 基礎架構 280
16.2.3 連線資料庫 281
16.2.4 對象存儲的創建 281
16.2.5 數據的添加·刪除·引用 282
16.2.6 索引的創建 283
16.2.7 數據的檢索與更新 284
16.2.8 數據的排序 285
16.2.9 事務 285
16.2.10 同步API 286
第 17章 WebSocket 287
17.1 WebSocket概要 287
17.1.1 WebSocket的定義 287
17.1.2 現有的通信技術 287
17.1.3 WebSocket的標準 290
17.1.4 WebSocket的執行方式 290
17.2 基本操作 291
17.2.1 連線的建立 291
17.2.2 訊息的收發 291
17.2.3 連線的切斷 292
17.2.4 連線的狀態確認 292
17.2.5 二進制數據的收發 293
17.2.6 WebSocket實例的屬性一覽 293
17.3 WebSocket實踐 294
17.3.1 Node.js的安裝 294
17.3.2 伺服器端的實現 295
17.3.3 客戶端的實現 295
17.3.4 客戶端的實現2 296
第 18章 Web Workers 298
18.1 Web Workers概要 298
18.1.1 Web Workers的定義 298
18.1.2 Web Workers的執行方式 298
18.2 基本操作 299
18.2.1 工作執行緒的創建 299
18.2.2 主執行緒一側的訊息收發 299
18.2.3 工作執行緒一側的訊息收發 300
18.2.4 工作執行緒的刪除 300
18.2.5 外部檔案的讀取 301
18.3 Web Worker實踐 301
18.3.1 工作執行緒的使用 301
18.3.2 中斷對工作執行緒的處理 302
18.4 共享工作執行緒 304
18.4.1 共享工作執行緒的定義 304
18.4.2 共享工作執行緒的創建 304
18.4.3 共享工作執行緒的訊息收發 305
18.4.4 共享工作執行緒的刪除 306
18.4.5 共享工作執行緒的套用實例 306
第5部分 Web API 309
第 19章 Web API的基礎 310
19.1 Web API與Web服務 310
19.2 Web API的歷史 311
19.2.1 Web抓取 311
19.2.2 語義網 311
19.2.3 XML 311
19.2.4 Atom 312
19.2.5 JSON 312
19.2.6 SOAP 313
19.2.7 REST 313
19.2.8 簡單總結 313
19.3 Web API的組成 314
19.3.1 Web API的形式 314
19.3.2 Web API的使用 315
19.3.3 RESTful API 315
19.3.4 API密鑰 316
19.4 用戶驗證與授權 317
19.4.1 Web應用程式的會話管理 317
19.4.2 會話管理與用戶驗證 318
19.4.3 Web API與許可權 319
19.4.4 驗證與授權 320
19.4.5 OAuth 321
第 20章 Web API的實例 323
20.1 Web API的分類 323
20.2 Google Translate API 324
20.2.1 準備 325
20.2.2 執行方式的概要 325
20.2.3 使用了Web API的代碼示例 326
20.2.4 微件(Google Translate Element) 327
20.3 Google Maps API 328
20.3.1 Google Static Maps API 328
20.3.2 我的地圖 329
20.3.3 Google Maps API的概要 330
20.3.4 簡單的Google Maps API示例 330
20.3.5 事件 331
20.3.6 Geolocation API與Geocoding API 333
20.4 Yahoo! Flickr 334
20.4.1 Flickr Web API的使用 335
20.4.2 Flickr Web API的使用實例 336
20.5 Twitter 337
20.5.1 搜尋API 337
20.5.2 REST API 338
20.5.3 Twitter JS API @anywhere 339
20.5.4 Twitter Widget 341
20.6 Facebook 341
20.6.1 Facebook套用的發展歷程 341
20.6.2 Facebook的JavaScript API 343
20.6.3 Facebook的外掛程式 344
20.7 OpenSocial 345
第6部分 伺服器端JavaScript 351
第 21章 伺服器端JavaScript與Node.js 352
21.1 伺服器端JavaScript的動向 352
21.2 CommonJS 352
21.2.1 CommonJS的定義 352
21.2.2 CommonJS的動向 353
21.2.3 模組功能 353
21.3 Node.js 355
21.3.1 Node.js概要 355
21.3.2 node指令 359
21.3.3 npm與包 359
21.3.4 console模組 360
21.3.5 util模組 361
21.3.6 process對象 362
21.3.7 全局對象 363
21.3.8 Node.js程式設計概要 363
21.3.9 事件API 365
21.3.10 緩衝 369
21.3.11 流 372
第 22章 Node.js程式設計實踐 374
22.1 HTTP伺服器處理 374
22.1.1 HTTP伺服器處理的基本流程 374
22.1.2 請求處理 375
22.1.3 回響處理 376
22.1.4 POST請求處理 377
22.2 HTTP客戶端處理 378
22.3 HTTPS處理 379
22.3.1 通過openssl指令發布自簽名證書的方法 379
22.3.2 HTTPS伺服器 379
22.4 Socket.IO與WebSocket 380
22.5 下層網路程式設計 381
22.5.1 下層網路處理 381
22.5.2 套接字的定義 382
22.5.3 套接字程式設計的基本結構 382
22.5.4 套接字程式設計的具體實例 384
22.6 檔案處理 385
22.6.1 本節的範例代碼 385
22.6.2 檔案的異步處理 386
22.6.3 檔案的同步處理 386
22.6.4 檔案操作相關函式 387
22.6.5 檔案讀取 387
22.6.6 檔案寫入 388
22.6.7 操作 389
22.6.8 對檔案更改的監視 390
22.6.9 檔案路徑 390
22.7 定時器 390
22.8 Express 391
22.8.1 URL路由 392
22.8.2 請求處理 392
22.8.3 回響處理 393
22.8.4 scaffold創建功能 393
22.8.5 MVC架構 393
22.8.6 模板語言Jade 394
22.8.7 MongoDB(資料庫) 395
22.8.8 Mongoose的實例 397
22.8.9 使用了Express與Mongoose的Web應用程式 398
後記 401
索引 403

相關詞條

熱門詞條

聯絡我們