發表於2024-11-14
JavaScript高級程序設計 pdf epub mobi txt 電子書 下載
Nicholas C.Zakas世界知名的JavaScript專傢和Web開發人員。Nicholas擁有豐富的Web開發和界麵設計經驗,曾經參與許多世界大公司的Web解決方案開發,並與他人閤作撰寫瞭暢銷書《Ajax高級程序設計》。
JavaScript最新經典教程 * Amazon超級暢銷書 * AJAX程序員必備
隨著國內的計算機圖書市場越來越細化,各類引進版和原創圖書在各自領域內如雨後春筍般展露頭角,各類“經典”和“聖經”橫空齣世。但是有一個領域內卻一直遺留瞭大片空白,就是JavaScript類圖書。除瞭O'Reilly的《JAVASCRIPT權威指南》之外,國內一直沒有齣現過特彆優秀的同類圖書。就在這時,Wrox的《Professional JavaScript for Web Developers》走進瞭我們的視野,中文名是《JAVASCRIPT高級程序設計》
JavaScript是目前Web客戶端開發的主要編程語言,也是Ajax的核心技術之一。本書從最早期Netscape瀏覽器中的JavaScript 開始講起,直到當前它對XML和Web服務的具體支持,內容主要涉及JavaScript的語言特點、JavaScript與瀏覽器的交互、更高級的 JavaScript技巧,以及與在Web應用程序中部署JavaScript解決方案有關的問題,如錯誤處理、調試、安全性、優化/混淆化、XML和 Web服務,最後介紹應用所有這些知識來創建動態用戶界麵。
本書適閤有一定編程經驗的開發人員閱讀,也可作為高校相關專業課程的教材。
新增DOM概念,如何實現正則錶達式進行數據驗證和字符串操作,把JavaScript聯係到Web用戶界麵的事件處理方法; 數據驗證、錶排序和錯誤處理的方法等
目錄
第1章 JavaScript是什麼 1
1.1 曆史簡述 1
1.2 JavaScript實現 2
1.2.1 ECMAScript 3
1.2.2 DOM 5
1.2.3 BOM 8
1.3 小結 8
第2章 ECMAScript基礎 9
2.1 語法 9
2.2 變量 10
2.3 關鍵字 12
2.4 保留字 12
2.5 原始值和引用值 13
2.6 原始類型 13
2.6.1 typeof運算符 14
2.6.2 Undefined類型 14
2.6.3 Null類型 15
2.6.4 Boolean類型 15
2.6.5 Number類型 15
2.6.6 String類型 17
2.7 轉換 18
2.7.1 轉換成字符串 18
2.7.2 轉換成數字 19
2.7.3 強製類型轉換 20
2.8 引用類型 22
2.8.1 Object類 22
2.8.2 Boolean類 23
2.8.3 Number類 23
2.8.4 String類 24
2.8.5 instanceof運算符 28
2.9 運算符 28
2.9.1 一元運算符 28
2.9.2 位運算符 32
2.9.3 Boolean運算符 37
2.9.4 乘性運算符 40
2.9.5 加性運算符 41
2.9.6 關係運算符 42
2.9.7 等性運算符 43
2.9.8 條件運算符 45
2.9.9 賦值運算符 45
2.9.10 逗號運算符 46
2.10 語句 46
2.10.1 if語句 46
2.10.2 迭代語句 47
2.10.3 有標簽的語句 48
2.10.4 break語句和continue語句 48
2.10.5 with語句 50
2.10.6 switch語句 50
2.11 函數 51
2.11.1 無重載 53
2.11.2 arguments對象 53
2.11.3 Function類 54
2.11.4 閉包 56
2.12 小結 57
第3章 對象基礎 58
3.1 麵嚮對象術語 58
3.1.1 麵嚮對象語言的要求 58
3.1.2 對象的構成 59
3.2 對象應用 59
3.2.1 聲明和實例化 59
3.2.2 對象引用 59
3.2.3 對象廢除 59
3.2.4 早綁定和晚綁定 60
3.3 對象的類型 60
3.3.1 本地對象 60
3.3.2 內置對象 70
3.3.3 宿主對象 75
3.4 作用域 75
3.4.1 公用、受保護和私有作用域 75
3.4.2 靜態作用域並非靜態的 76
3.4.3 關鍵字this 76
3.5 定義類或對象 78
3.5.1 工廠方式 78
3.5.2 構造函數方式 80
3.5.3 原型方式 80
3.5.4 混閤的構造函數/原型方式 81
3.5.5 動態原型方法 82
3.5.6 混閤工廠方式 83
3.5.7 采用哪種方式 84
3.5.8 實例 84
3.6 修改對象 86
3.6.1 創建新方法 86
3.6.2 重定義已有方法 87
3.6.3 極晚綁定 88
3.7 小結 88
第4章 繼承 89
4.1 繼承機製實例 89
4.2 繼承機製的實現 90
4.2.1 繼承的方式 90
4.2.2 一個更實際的例子 96
4.3 其他繼承方式 100
4.3.1 zInherit 100
4.3.2 xbObjects 104
4.4 小結 108
第5章 瀏覽器中的JavaScript 109
5.1 HTML中的JavaScript 109
5.1.1 〈script/〉標簽 109
5.1.2 外部文件格式 110
5.1.3 內嵌代碼和外部文件 111
5.1.4 標簽放置 111
5.1.5 隱藏還是不隱藏 113
5.1.6 〈noscript/〉標簽 113
5.1.7 XHTML中的改變 114
5.2 SVG中的JavaScript 116
5.2.1 SVG基礎 116
5.2.2 SVG中的〈script/〉標簽 117
5.2.3 SVG中的標簽放置 118
5.3 BOM 119
5.3.1 window對象 119
5.3.2 document對象 130
5.3.3 location對象 133
5.3.4 navigator對象 135
5.3.5 screen對象 136
5.4 小結 137
第6章 DOM基礎 138
6.1 什麼是DOM? 138
6.1.1 XML簡介 138
6.1.2 針對XML的API 141
6.1.3 節點的層次 141
6.1.4 特定語言的DOM 144
6.2 對DOM的支持 145
6.3 使用DOM 145
6.3.1 訪問相關的節點 145
6.3.2 檢測節點類型 146
6.3.3 處理特性 147
6.3.4 訪問指定節點 148
6.3.5 創建和操作節點 150
6.4 HTML DOM特徵功能 155
6.4.1 讓特性像屬性一樣 155
6.4.2 table方法 156
6.5 遍曆DOM 158
6.5.1 NodeIterator 158
6.5.2 TreeWalker 163
6.6 測試與DOM標準的一緻性 165
6.7 DOM Level 3 166
6.8 小結 166
第7章 正則錶達式 167
7.1 正則錶達式支持 167
7.1.1 使用RegExp對象 168
7.1.2 擴展的字符串方法 169
7.2 簡單模式 170
7.2.1 元字符 170
7.2.2 使用特殊字符 170
7.2.3 字符類 172
7.2.4 量詞 174
7.3 復雜模式 177
7.3.1 分組 177
7.3.2 反嚮引用 178
7.3.3 候選 179
7.3.4 非捕獲性分組 180
7.3.5 前瞻 181
7.3.6 邊界 182
7.3.7 多行模式 183
7.4 理解RegExp對象 184
7.4.1 實例屬性 184
7.4.2 靜態屬性 185
7.5 常用模式 186
7.5.1 驗證日期 187
7.5.2 驗證信用卡號 188
7.5.3 驗證電子郵件地址 192
7.6 小結 193
第8章 檢測瀏覽器和操作係統 194
8.1 navigator對象 194
8.2 檢測瀏覽器的方式 194
8.2.1 對象/特徵檢測法 194
8.2.2 user-agent字符串檢測法 195
8.3 user-agent字符串簡史 196
8.3.1 Netscape Navigator 3.0與 IE3.0 196
8.3.2 Netscape Communicator 4.0與IE 4.0 197
8.3.3 IE 5.0及更高版本 198
8.3.4 Mozilla 198
8.3.5 Opera 200
8.3.6 Safari 201
8.3.7 結語 201
8.4 瀏覽器檢測腳本 201
8.4.1 方法學 202
8.4.2 第一步 202
8.4.3 檢測Opera 204
8.4.4 檢測Konqueror/Safari 206
8.4.5 檢測IE 208
8.4.6 檢測Mozilla 209
8.4.7 檢測Netscape Communicator 4.x 210
8.5 平颱/操作係統檢測腳本 211
8.5.1 方法學 211
8.5.2 第一步 212
8.5.3 檢測Windows操作係統 212
8.5.4 檢測Macintosh操作係統 214
8.5.5 檢測Unix操作係統 214
8.6 全部腳本 215
8.7 例子:登錄頁麵 219
8.8 小結 224
第9章 事件 225
9.1 今天的事件 225
9.2 事件流 226
9.2.1 冒泡型事件 226
9.2.2 捕獲型事件 227
9.2.3 DOM事件流 228
9.3 事件處理函數/監聽函數 229
9.3.1 IE 230
9.3.2 DOM 231
9.4 事件對象 232
9.4.1 定位 233
9.4.2 屬性/方法 233
9.4.3 相似性 235
9.4.4 區彆 238
9.5 事件的類型 240
9.5.1 鼠標事件 240
9.5.2 鍵盤事件 244
9.5.3 HTML事件 246
9.5.4 變化事件 251
9.6 跨平颱的事件 252
9.6.1 EventUtil對象 252
9.6.2 添加/刪除事件處理函數 252
9.6.3 格式化event對象 254
9.6.4 獲取事件對象 258
9.6.5 示例 259
9.7 小結 260
第10章 高級DOM技術 261
10.1 樣式編程 261
10.1.1 DOM樣式的方法 263
10.1.2 自定義鼠標提示 264
10.1.3 可摺疊區域 265
10.1.4 訪問樣式錶 266
10.1.5 最終樣式 270
10.2 innerText和innerHTML 271
10.3 outerText和outerHTML 273
10.4 範圍 274
10.4.1 DOM中的範圍 274
10.4.2 IE中的範圍 284
10.4.3 範圍在實際中的應用 288
10.5 小結 288
第11章 錶單和數據完整性 289
11.1 錶單基礎 289
11.2 對〈form/〉元素進行腳本編寫 291
11.2.1 獲取錶單的引用 291
11.2.2 訪問錶單字段 291
11.2.3 錶單字段的共性 292
11.2.4 聚焦於第一個字段 292
11.2.5 提交錶單 293
11.2.6 僅提交一次 294
11.2.7 重置錶單 295
11.3 文本框 295
11.3.1 獲取/更改文本框的值 296
11.3.2 選擇文本 297
11.3.3 文本框事件 298
11.3.4 自動選擇文本 298
11.3.5 自動切換到下一個 299
11.3.6 限製textarea的字符數 300
11.3.7 允許/阻止文本框中的字符 301
11.3.8 使用上下按鍵操作數字文本 306
11.4 列錶框和組閤框 308
11.4.1 訪問選項 309
11.4.2 獲取/更改選中項 309
11.4.3 添加選項 310
11.4.4 刪除選項 311
11.4.5 移動選項 312
11.4.6 重新排序選項 313
11.5 創建自動提示的文本框 313
11.5.1 匹配 314
11.5.2 內部機製 314
11.6 小結 316
第12章 錶格排序 317
12.1 起點——數組 317
12.2 對單列的錶格排序 319
12.2.1 比較函數 320
12.2.2 sortTable()函數 320
12.3 對多列錶格進行排序 323
12.3.1 比較函數生成器 323
12.3.2 修改sortTable()方法 324
12.3.3 逆序排列 325
12.3.4 對不同的數據類型進行排序 327
12.3.5 高級排序 330
12.4 小結 334
第13章 拖放 335
13.1 係統拖放 335
13.1.1 拖放事件 336
13.1.2 數據傳輸對象dataTransfer 341
13.1.3 dragDrop()方法 345
13.1.4 優點及缺點 346
13.2 模擬拖放 346
13.2.1 代碼 347
13.2.2 創建放置目標 349
13.2.3 優點及缺點 352
13.3 zDragDrop 352
13.3.1 創建可拖動元素 352
13.3.2 創建放置目標 353
13.3.3 事件 353
13.3.4 例子 354
13.4 小結 355
第14章 錯誤處理 356
14.1 錯誤處理的重要性 356
14.2 錯誤和異常 357
14.3 錯誤報告 358
14.3.1 IE(Windows) 358
14.3.2 IE(MacOS) 359
14.3.3 Mozilla(所有平颱) 359
14.3.4 Safari(MacOS) 360
14.3.5 Opera 7(所有平颱) 361
14.4 處理錯誤 362
14.4.1 onerror事件處理函數 362
14.4.2 try...catch語句 365
14.5 調試技巧 370
14.5.1 使用警告框 370
14.5.2 使用Java控製颱 371
14.5.3 將消息寫入JavaScript控製颱 (僅限Opera 7+) 372
14.5.4 拋齣自定義錯誤 372
14.5.5 JavaScript校驗器 373
14.6 調試器 374
14.6.1 Microsoft Script Debugger 374
14.6.2 Venkman 376
14.7 小結 383
第15章 JavaScript中的XML 384
15.1 瀏覽器中的XML DOM支持 384
15.1.1 IE中的XML DOM支持 384
15.1.2 Mozilla中XML DOM支持 388
15.1.3 通用接口 393
15.2 瀏覽器中的XPath支持 403
15.2.1 XPath簡介 403
15.2.2 IE中的XPath支持 404
15.2.3 Mozilla中的XPath支持 404
15.3 瀏覽器中的XSLT支持 408
15.3.1 IE中的XSLT支持 410
15.3.2 Mozilla中XSLT支持 413
15.4 小結 415
第16章 客戶端與服務器端的通信 416
16.1 cookie 416
16.1.1 cookie的成分 416
16.1.2 其他安全限製 417
16.1.3 JavaScript中的cookie 417
16.1.4 服務器端的cookie 419
16.1.5 在客戶端與服務器端之間傳遞cookie 422
16.2 隱藏框架 423
16.3 HTTP請求 426
16.3.1 使用HTTP首部 428
16.3.2 實現的復製品 429
16.3.3 進行GET請求 430
16.3.4 進行POST請求 430
16.4 LiveConnect請求 431
16.4.1 進行GET請求 431
16.4.2 進行POST請求 433
16.5 智能HTTP請求 435
16.5.1 get()方法 435
16.5.2 post()方法 438
16.6 實際使用 439
16.7 小結 439
第17章 Web服務 440
17.1 Web服務快速入門 440
17.1.1 Web服務是什麼? 440
17.1.2 WSDL 441
17.2 IE中的Web服務 443
17.2.1 使用WebService組件 444
17.2.2 WebService組件例子 445
17.3 Mozilla中的Web服務 447
17.3.1 加強的特權 447
17.3.2 使用SOAP方法 448
17.3.3 使用WSDL代理 451
17.4 跨瀏覽器的方案 454
17.4.1 WebService對象 454
17.4.2 Temperature 服務 456
17.4.3 使用TemperatureService對象 458
17.5 小結 458
第18章 與插件進行交互 459
18.1 為何使用插件 459
18.2 流行的插件 460
18.3 MIME類型 460
18.4 嵌入插件 461
18.4.1 加入參數 461
18.4.2 Netscape 4.x 462
18.5 檢測插件 462
18.5.1 檢測Netscape式插件 463
18.5.2 檢測ActiveX插件 467
18.5.3 跨瀏覽器檢測 469
18.6 Java applet 470
18.6.1 嵌入applet 470
18.6.2 在JavaScript中引用applet 471
18.6.3 創建applet 471
18.6.4 JavaScript到Java的通信 472
18.6.5 Java到JavaScript的通信 475
18.7 Flash動畫 477
18.7.1 嵌入Flash動畫 477
18.7.2 引用Flash動畫 478
18.7.3 JavaScript到Flash的通信 478
18.7.4 Flash到JavaScript通信 481
18.8 ActiveX控件 483
18.9 小結 485
第19章 部署問題 486
19.1 安全性 486
19.1.1 同源策略 486
19.1.2 窗口對象問題 487
19.1.3 Mozilla特有的問題 488
19.1.4 資源限製 490
19.2 國際化 491
19.2.1 使用JavaScript檢測語言 491
19.2.2 策略 492
19.2.3 字符串的思考 492
19.3 優化JavaScript 495
19.3.1 下載時間 495
19.3.2 執行時間 499
19.4 知識産權的問題 512
19.4.1 混淆 512
19.4.2 Microsoft Script Encoder(僅IE) 513
19.5 小結 514
第20章 JavaScript的未來 515
20.1 ECMAScript 4 515
20.1.1 Netscape的提案 515
20.1.2 實現 521
20.2 ECMAScript for XML 522
20.2.1 途徑 522
20.2.2 for each..in循環 524
20.2.3 新的類 524
20.2.4 實現 532
20.3 小結 532
索引
##七百多頁的大塊頭,從學校圖書館到放假迴傢,斷斷續續的三個月連帶做筆記終於勉強算過瞭一遍。因為這本書內容比較多,涉及麵也比較廣,對於我這種沒有實戰經驗的學生來說很多章節不是都不懂就是不知所用,隻是一味的看看方法,API什麼的 。所以看完一遍之後,我又把重點語言章...
評分##在大學時,因項目開發需要而使用瞭前端庫ExtJs作為前端開發工具,那時對於什麼是JS,HTML,CSS,XML,Ajax以及各種網頁開發所涉及到的知識的作用以及相互之間的聯係是一頭霧水,更不知道除瞭ExtJs外,更有類似於jQuery,YUI,Google Closure等等的其它牛X的框架,前端知識...
評分##美好的語言,糟糕的實現。為瞭商業利益,置標準為草芥,瀏覽器大戰的後遺癥,就是再好的語言,它們都給你最糟糕的實現。 這本書在一定程度上是解決瀏覽器之間的差異,並使用趨近“標準”的代碼來教學。值得一讀。
評分##花瞭一下午讀完瞭,不錯
評分 評分##講正則和效率優化的部分不錯
JavaScript高級程序設計 pdf epub mobi txt 電子書 下載