[www.ed2k.online]下載基地為您提供軟件、遊戲、圖書、教育等各種資源的ED2K電驢共享下載和MAGNET磁力鏈接下載。
設為首頁
加入收藏
首頁 圖書資源 軟件資源 游戲資源 教育資源 其他資源
 電驢下載基地 >> 图书资源 >> 計算機與網絡 >> 《JavaScript征途》掃描版[PDF]
《JavaScript征途》掃描版[PDF]
下載分級 图书资源
資源類別 計算機與網絡
發布時間 2017/7/10
大       小 -
《JavaScript征途》掃描版[PDF] 簡介: 中文名 : JavaScript征途 作者 : 朱印宏 圖書分類 : 網絡 資源格式 : PDF 版本 : 掃描版 出版社 : 電子工業出版社 書號 : 9787121090868 發行時間 : 2009年9月7日 地區 : 大陸 語言 : 簡體中文 簡介 : 評論處1樓有網盤鏈接 內容介紹:   
電驢資源下載/磁力鏈接資源下載:
全選
"《JavaScript征途》掃描版[PDF]"介紹
中文名: JavaScript征途
作者: 朱印宏
圖書分類: 網絡
資源格式: PDF
版本: 掃描版
出版社: 電子工業出版社
書號: 9787121090868
發行時間: 2009年9月7日
地區: 大陸
語言: 簡體中文
簡介:



評論處1樓有網盤鏈接
內容介紹:
  本書是一本學習javascript語言的權威書籍,在遵循語言學習的特殊規律基礎上精心選材,力爭做到統籌、有序,在結構上體現系統性和完整性。同時還重點挖掘javascript基於對象的開發精髓及函數式編程兩個技術核心。.
   本書內容全面,由淺入深,包括6篇21章,主要內容包括:javascript語言的基本特性,開發簡單的javascript程序,javascript語法體系,數據、數據類型和變量,運算符和表達式,語句和結構,javascript函數, javascript對象,數組,字符串,使用正則表達式操縱字符串,客戶端,控制文檔結構的模型,javascript事件驅動模型,css,cookie,xml和json,ajax,深入javascript面向對象編程,深入javascript函數式編程,深入javascript動態化編程等。..
   本書適用於具有一定程序開發基礎、准備學習javascript語言或希望提高javascript語言技巧的讀者,還可作為相關培訓班的教材。...
內容截圖:



目錄:


第1篇 壯志從戎.
第1章 與初學者談談javascript學習 3
1.1 學之初,你應該清楚的幾個概念 3
1.1.1 b/s和c/s 3
1.1.2 rwc和ria 4
1.1.3 結構、行為和表現 4
1.2 審視javascript語言特性 5
1.2.1 javascript是一門靈活的腳本語言 5
1.過程化設計 6 2.定義原型方法 6
3.封裝原型方法 6 4.造車不如設計標准 7
5.方法接龍 7 6.實例體驗 8
1.2.2 javascript是基於對象的語言 8
1.萬物皆為對象 8 2.奇怪的指針 9
3.靈活的用法 9
1.2.3 javascript是函數式語言 10
1.八面玲珑的函數 10 2.函數的作用域 11
3.奇怪的函數閉包 11 4.函數的上下文對象 11
1.3 javascript語言風雲錄 12
1.3.1 javascript尋根 12
1.3.2 三國志—javascript、jscript和ecmascript 13
.1.3.3 一個好漢三個幫—客戶端的javascript實現 14
1.dom 15 2.bom 15
1.3.4 春秋五霸—令人生畏的浏覽器混戰和兼容 16
1.mozilla 16 2.ie 16
3.safari 17 4.opera 17
5.chrome 17 6.浏覽器兼容方法 17
1.4 javascript運行環境 18
1.4.1 宿主環境 18
1.4.2 執行期環境 19
1.5 javascript解析機制 19
1.5.1 預編譯 19
1.5.2 執行期 22
1.6 javascript執行順序 23
1.6.1 按html文檔流順序執行javascript代碼 23
1.6.2 預編譯與執行順序的關系 24
1.6.3 按塊執行javascript代碼 25
1.6.4 借助事件機制改變javascript執行順序 26
1.6.5 javascript輸出腳本的執行順序 26
1.7 javascript應用范圍 29
1.7.1 客戶端的javascript 29
1.7.2 服務器端的javascript 30
1.7.3 其他環境的javascript 30
1.8 javascript開發工具箱 30
1.8.1 關於web浏覽器 30
1.8.2 關於javascript編輯器 31
1.8.3 關於javascript測試和調試工具 31
1.浏覽器的錯誤控制平台 31 2.firebug 33
3.httpwatch 33 4.web developer toolbar 34
5.javascript debuger 34
第2章 hello,world—javascript開發初體驗 35
2.1 楊輝三角—第一個javascript程序 35
2.1.1 萬物皆有規律—問題分析 37
2.1.2 遞歸算法設計 38
2.1.3 優化算法設計 39
2.1.4 輸出楊輝三角 39
2.2 在網頁中嵌入javascript腳本 40
2.2.1 使用script元素嵌入腳本 40
1.設置腳本類型 41 2.導入外部腳本文件 41
3.設置腳本的字符編碼 42 4.設置腳本延遲執行 42
5.設置腳本在服務器端執行 42
2.2.2 探析外部腳本文件 42
1.導入外部腳本文件 43 2.何時使用外部javascript腳本文件 44
2.2.3 注意javascript腳本文件的關聯性 44
2.2.4 使用接口技術解決javascript文件沖突 45
2.2.5 javascript文件與css文件導入和執行沖突 46
2.2.6 (script)標簽在文檔中的位置 48
2.2.7 杞人憂天—隱藏javascript腳本 49
2.2.8 關注細節—使用noscript元素 49
2.3 糾正編碼習慣 50
2.3.1 javascript編碼基本規范 51
1.javascript文件規范 51 2.代碼縮進 51
3.代碼長度 51 4.代碼注釋 51
5.變量聲明 52 6.函數聲明 52
7.標識符命名 52 8.語句 53
9.標簽 53
2.3.2 思路梳理器—寫好注釋 53
1.單行注釋 53 2.多行注釋 54
2.3.3 留白的藝術—格式化代碼 55
1.使用空行分隔代碼塊 55 2.空格是代碼稀釋劑 55
3.嵌套與縮進 55 4.換行縮進 56
5.大括號的位置 56 6.空結構的格式 56
7.單句結構的格式 56
2.4 程序調試 57
2.4.1 簡單的手工調試 57
2.4.2 使用1st javascript editor調試器進行調試 58
1.逐步調試 59 2.斷點 60
3.觀察 60
2.4.3 使用microsoft script debugger進行調試 61
2.4.4 異常處理 63
1.異常處理的基本結構 64 2.異常處理中的兼容問題 64
3.打掃戰場 66
第2篇 沙場秋點兵
第3章 運籌帷幄—俯瞰javascript語法體系 69
3.1 javascript語言詞法基礎 69
3.1.1 從字符編碼開始接觸javascript語言 70
3.1.2 認識javascript的實詞和虛詞概念 71
3.1.3 對大小寫比較敏感的實詞 72
3.1.4 實詞類型 73
1.標識符 73 2.直接量 74
3.保留字 74
3.1.5 虛詞類型 74
1.無意義的分隔符 75 2.有意義的分隔符 75
3.注釋 76
3.2 javascript語言句法基礎 77
3.2.1 認識句法三要素:詞、句和段 77
1.段落 77 2.句子 78
3.詞語 78
3.2.2 點號—邏輯域定位符 79
3.2.3 逗號—連續運算符 80
3.2.4 分號—語句分隔符 81
3.2.5 冒號—邏輯聲明符 82
3.2.6 大括號—邏輯域分隔符 82
3.2.7 中括號—有序列表分隔符 84
3.2.8 小括號—強制運算符或邏輯分隔符 85
第4章 javascript血液系統—數據、數據類型和變量 89
4.1 從數據到類型 89
4.1.1 數據的本質 89
4.1.2 柔弱的javascript語言 90
4.1.3 javascript的基本數據類型 91
4.1.4 數之源—值類型和引用類型 92
4.1.5 原始值和引用值的操作本質 93
1.使用原始值 93 2.使用引用值 94
4.2 值類型數據 96
4.2.1 線性思維的符號—數值 96
1.數值直接量 96 2.八進制和十六進制數值 97
3.數值運算 97 4.特殊數值 98
4.2.2 形象思維的顏料—字符串 99
1.字符串直接量 99 2.轉義序列 100
3.字符串操作 100
4.2.3 邏輯思維的卵細胞—布爾型 101
4.2.4 空無道人—null 101
4.2.5 人之初—undefined 102
4.3 引用類型數據 103
4.3.1 有序數據結構—數組 104
1.數組意象 104 2.第一次接觸數組 105
4.3.2 離散數據結構—對象 105
1.對象意象 106 2.第一次接觸對象 106
4.3.3 魔獸數據—函數 108
1.函數意象 108 2.大話函數演繹之路 108
3.探究奇特的函數解析機制 110
4.4 數據類型檢測和轉換 112
4.4.1 數據類型檢測 113
1.使用typeof運算符 113 2.使用constructor屬性 113
3.框架窗口的數組類型問題 114 4.設計更安全的數據類型檢測方法 115
4.4.2 值類型數據的自動轉換 117
4.4.3 引用型數據的自動轉換 118
1.對象在邏輯運算環境中的
特殊情況 118 2.對象在數值運算環境中的
特殊情況 118
3.數組在數值運算環境中的
特殊情況 119 4.對象在模糊運算環境中的
情況處理 119
4.4.4 把值轉換為字符串 120
1.使用加號運算符 120 2.圓滑的加號運算符 122
3.使用tostring()方法 122 4.數字轉換為字符串的模式問題 122
5.數字轉換為字符串的位數問題 123
4.4.5 把值轉換為數字 124
1.使用parseint()函數 124 2.使用parsefloat()函數 125
3.使用乘號運算符 125
4.4.6 把值轉換為布爾值 125
1.使用雙重邏輯非運算符 125 2.使用boolean()構造函數轉換 126
4.4.7 裝箱和拆箱 126
1.從值到引用—裝箱 126 2.從引用到值—拆箱 127
4.4.8 數據類型的強制轉換 128
4.5 使用變量 129
4.5.1 聲明變量 129
1.變量聲明的方法 129 2.3種變量命名法 130
4.5.2 丑陋的javascript變量 131
1.陋習一:變量沒有類型 131 2.陋習二:變量可以重復聲明 131
3.陋習三:變量可以隱式聲明 132 4.陋習四:變量的灰色潛規則 132
4.5.3 不可跨越的門檻—變量的作用域 133
1.變量優先級問題 133 2.局部作用域的嵌套 134
3.利用函數作用域實現技術封裝 134 4.變量的解析過程 135
5.被javascript忽略的塊級作用域 136 6.函數閉包的作用域 136
4.5.4 圈裡圈外—屬性與變量 137
1.全局變量是全局對象的屬性 137 2.局部變量是調用對象的屬性 138
4.5.5 變量的作用域鏈 138
4.5.6 變量的垃圾回收 139
第5章 javascript肌肉系統—運算符、表達式 141
5.1 說說運算符和表達式 141
5.1.1 語言實際上就是數據和運算的交流工具 141
5.1.2 運算符是運算的解碼器 142
5.1.3 走入運算符的童話世界 143
5.1.4 領略運算符的魔法法則 144
5.1.5 運算的人性化,還是隨意性 146
5.1.6 警惕運算符的副作用 147
5.1.7 表達式是運算的最小邏輯單元 148
5.1.8 優化表達式的思維品質 148
5.2 天人合一——位運算符 151
5.2.1 位運算是整數的逐位運算 151
5.2.2 探秘二進制數運算奧秘 151
5.2.3 邏輯位運算 153
5.2.4 移位運算 155
5.3 童年無忌—算術運算符 157
5.3.1 加法的特殊運算 157
5.3.2 減法的特殊運算 158
5.3.3 乘法的特殊運算 159
5.3.4 除法的特殊運算 159
5.3.5 取模的特殊運算 160
5.3.6 取反運算 160
5.3.7 心髒起搏器—遞增和遞減 160
5.4 離散思維—字符串運算符 161
5.5 真真假假論乾坤—邏輯運算符 161
5.5.1 邏輯與運算 162
5.5.2 邏輯或運算符 164
5.5.3 邏輯非運算符 166
5.5.4 邏輯思維訓練 166
5.6 貨比三家—關系運算符 168
5.6.1 大小關系檢測 168
5.6.2 包含關系檢測 169
5.6.3 等值關系檢測 170
5.7 復制數據—賦值運算符 172
5.8 對象操作運算符 174
5.8.1 女娲造人—new運算符 174
5.8.2 垃圾回收站—delete運算符 175
5.8.3 i/o接口—存取運算符 177
1.中括號運算符 177 2.點號運算符 178
5.8.4 光盤驅動器—函數調用運算符 179
5.9 其他運算符 180
5.9.1 迷你版分支邏輯—條件運算符 180
5.9.2 期待與收獲—逗號運算符 181
5.9.3 俯首甘為孺子牛—void運算符 182
5.9.4 身份驗證—類型檢測運算符 183
第6章 javascript神經骨骼系統—語句、結構 185
6.1 從表達式到語句 185
6.1.1 什麼是句子 186
6.1.2 兩面性—表達式、表達式語句 188
6.1.3 群居性—復合語句 189
6.1.4 形影相隨—句子、結構 190
6.1.5 不被執行的—聲明語句 191
6.1.6 語句占位符—空語句 193
6.2 分支結構 193
6.2.1 if語句 193
6.2.2 if結構嵌套 194
1.錯誤的嵌套 194 2.正確的嵌套 195
6.2.3 else if語句 195
6.2.4 預防if結構嵌套的主觀性 196
6.2.5 if結構中容易躲藏的bug 197
6.2.6 switch語句 198
6.2.7 悟透default從句用法 200
6.2.8 恰當選用if結構和switch結構 202
6.2.9 分支結構中邏輯順序的優化 204
6.3 循環結構 205
6.3.1 while語句 205
6.3.2 do/while語句 207
6.3.3 for語句 207
6.3.4 for/in語句 209
6.3.5 靈活使用for/in結構 210
6.3.6 如何正確選用while和for結構 212
1.從語義性角度比較 212 2.從思維模式角度比較 212
3.從達成目標角度比較 214
6.3.7 優化循環結構和提高循環效率 215
1.優化結構 215 2.避免不必要的重復操作 216
3.妥善定義循環變量 216
6.4 結構的邏輯干預 216
6.4.1 有序思維的錨點—標簽語句 217
6.4.2 跳出往後執行—break語句 218
6.4.3 繼續重新執行—continue語句 220
6.5 邏輯異常處理 222
6.5.1 剖析異常和異常種類 222
6.5.2 知法犯法—throw語句 223
6.5.3 異常處理器—try/catch/finally語句 223
6.6 函數體結構 225
6.6.1 惰性氣體—function語句 225
6.6.2 函數輸出接口—return語句 227
6.7 臨時作用域結構—with語句 228
第3篇 初戰告捷
第7章 盒子裡的魔術——透視javascript函數 233
7.1 認識函數 233
7.1.1 函數是一段代碼塊 234
7.1.2 函數是一類數據 234
7.1.3 函數是一種對象 234
7.2 定義javascript函數 235
7.2.1 克隆結構—構造函數 235
7.2.2 復雜結構的常量—函數直接量 237
7.2.3 定義嵌套函數 238
7.3 函數定義方法比較 239
7.3.1 函數作用域的比較 239
7.3.2 解析機制的比較 240
7.3.3 兼容性和靈活性比較 241
7.4 探析函數基本用法 242
7.4.1 函數返回值 242
7.4.2 調用函數 243
7.4.3 函數的生命周期 244
7.4.4 函數的作用域 245
7.5 深入函數的參數 246
7.5.1 認識函數的形參和實參 247
7.5.2 參數管理器—arguments對象 248
7.5.3 回調函數—callee屬性揭秘 249
7.5.4 arguments對象在實踐中靈活應用 250
7.6 使用函數對象 251
7.6.1 獲取函數形參個數 251
7.6.2 靈敏的指針—有趣的this關鍵字 252
7.6.3 雙刃劍—正確使用this關鍵字 253
7.6.4 自定義函數屬性和方法 255
7.6.5 儲錢罐—巧用函數的屬性實現蓄能 256
7.6.6 誰的屬性和方法—this與函數屬性和方法的混合使用 257
7.6.7 動態調用函數—詭異的call()和apply()方法 258
7.6.8 更改指針—call()和apply()方法高級應用 260
7.7 數據寄存器—閉包函數 262
7.7.1 認識閉包 262
7.7.2 分析閉包結構的基本特性 263
1.自閉特性 263 2.包裹特性 263
7.7.3 閉包的基本應用 264
第8章 大象也有形—把握javascript對象 267
8.1 初識對象 267
8.1.1 什麼是對象 268
8.1.2 對象是如何出生的 268
8.2 對象類型 269
8.2.1 本地對象 269
8.2.2 內置對象 270
8.2.3 宿主對象 270
8.3 對象基本操作 270
8.3.1 創建對象 271
8.3.2 引用對象 271
8.3.3 銷毀對象 272
8.4 對象的屬性和方法 272
8.4.1 定義對象的屬性 273
8.4.2 訪問對象的屬性 273
8.4.3 設置和刪除對象屬性 274
8.4.4 對象的方法 275
8.5 對象的作用域 276
8.5.1 公共作用域 276
8.5.2 私有作用域 277
8.5.3 靜態作用域 277
8.5.4 變形怪傑—作用域中的this 278
8.6 構造對象、實例對象和原型對象 279
8.6.1 構造對象 279
1.構造對象的屬性 280 2.構造對象的方法 280
8.6.2 實例對象 281
1.實例對象的屬性 281 2.實例對象的方法 282
8.6.3 原型對象 282
1.認識原型對象 282 2.原型屬性與實例屬性之間的關系 284
3.通過原型方法擴展內置對象功能 285
8.7 構造器 285
8.7.1 引用構造器—constructor屬性 285
8.7.2 構造器的原型繼承 286
8.7.3 根據構造器判定對象類型 287
8.8 對象基本方法和應用 287
8.8.1 對象的字符串標志—tostring()方法 288
8.8.2 對象的值—valueof()方法 289
8.8.3 檢測私有屬性—hasownproperty()方法 290
8.8.4 檢測枚舉屬性—propertyisenumerable()方法 291
8.8.5 檢測原型對象—isprototypeof()方法 293
8.9 探析javascript核心對象 294
8.9.1 大象無形—global對象 294
8.9.2 數學專家—math對象 295
8.9.3 時間管理—date對象 298
1.獲取本地系統的當前時間 298 2.通過多選參數來創建指定的
時間對象 298
3.通過一個時間格式的字符串來
創建指定的時間對象 298 4.通過傳遞一個毫秒數來創建
指定的時間對象 298
第9章 有序世界的信使—操作數組 301
9.1 透視數據集合 301
9.1.1 數據集合的類型 301
9.1.2 特殊數集—哈希表 302
9.2 定義數組 303
9.3 數組基本操作 304
9.3.1 存取數組元素 304
9.3.2 能夠自由伸縮的數組 305
9.3.3 數組的大小 306
9.3.4 對象與數組 306
9.3.5 暗度陳倉—定義多維數組 308
9.4 數組方法及其應用 309
9.4.1 檢索數組元素 309
9.4.2 添加和刪除元素 309
1.push()和pop()方法 310 2.unshift()和shift()方法 310
3.模擬隊列數據結構的操作 311 4.粘連數組的concat()方法 311
9.4.3 子數組操作 312
1.刪除和插入元素集合—
splice()方法 312 2.截取子數組—slice()方法 313
9.4.4 數組排序 314
1.顛倒順序—reverse()方法 314 2.數組排序—sort()方法 314
9.4.5 奇思妙想—更有趣的數組排序 315
1.根據奇偶性質排列數組 316 2.不區分大小寫排序字符串 316
3.把浮點數和整數分開排列 317
9.4.6 數組與字符串相互轉換 317
1.字符串通用轉換—
tostring()方法 317 2.本地字符串轉換—
tolocalstring()方法 318
3.更靈活的字符串轉換—
join()方法 318 4.把字符串轉換為數組—
split()方法 318
9.5 靈活使用數組及其方法擴展 319
9.5.1 神奇的數組下標 319
1.文本下標 319 2.二維數組下標 320
3.對象下標 321
9.5.2 擴展數組的基本方法 321
9.5.3 為數組擴展通用迭代器 322
9.5.4 利用數組迭代器擴展數組方法 324
1.動態改變數組中每個元素的值 324 2.過濾數組元素 325
第10章 變相怪傑—駕馭字符串 327
10.1 傷心字符串:使用值還是使用引用 327
10.1.1 思考是發現問題的鑰匙 327
10.1.2 直擊字符串操作的真相 328
10.1.3 字符串是如何進行比較的 330
10.2 創建字符串 330
10.2.1 定義字符串直接量 330
10.2.2 構造字符串 331
10.2.3 使用字符編碼創建字符串 332
10.3 使用字符串 333
10.3.1 獲取字符串的字符和字節長度.. 333
10.3.2 連接字符串 335
10.3.3 查找字符串 335
1.獲取指定位置的字符—
charat()和charcodeat()方法 335 2.查找子字符串的位置—
indexof()和lastindexof()方法 336
3.匹配字符串—
search()和match()方法 337
10.3.4 截取子字符串 339
1.根據長度截取子字符串—
substr()方法 339 2.根據起止下標截取子字符串—
slice()和substring()方法 339
10.3.5 編輯字符串 340
1.替換子字符串—replace()方法 340 2.字符串大小寫轉換 342
10.3.6 暗藏玄機—replace()方法深層技術探討 342
10.3.7 比較字符串 344
10.3.8 把字符串轉換為數組 345
10.3.9 字符串的類型和值 346
10.3.10 格式化字符串方法 347
10.4 string對象擴展及用法 348
10.4.1 模擬vbscript字符串處理函數 348
1.截取字符串左側指定數目的字符
—left()方法 348 2.截取字符串右側指定數目的字符
—right()方法 349
3.清除字符串首尾的空格
—trim()方法 349 4.清除字符串左側空格
—ltrim()方法 350
5.清除字符串右側空格
—rtrim()方法 350
10.4.2 檢測特殊字符 351
10.4.3 提高字符串連接操作效率 352
10.5 字符串加密和解密 352
10.5.1 javascript預定義編碼和解碼方法 352
1.字符串常規編碼和解碼
—escape()和unescape()方法 353 2.uri字符串編碼和解碼—encodeuri()
和decodeuri()方法 353
3.uri組件編碼和解碼—
encodeuricomponent()和
decodeuricomponent()方法 354
10.5.2 unicode編碼 355
10.5.3 unicode解碼 355
10.5.4 自定義加密和解密方法 356
第11章 靈異的牧羊犬—使用正則表達式操縱字符串 359
11.1 第六感覺—認識正則表達式 359
11.1.1 什麼是正則表達式 359
11.1.2 正則表達式的發展歷史 360
11.2 定義正則表達式 361
11.2.1 使用regexp對象構造正則表達式 361
11.2.2 定義正則表達式直接量 363
11.3 正則表達式基本語法—字符類 364
11.3.1 認識普通字符和元字符 364
11.3.2 字符直接量 364
1.用ascii碼表示 364 2.用unicode編碼表示 365
11.3.3 定義簡單字符類 366
11.3.4 定義反義字符類 366
11.3.5 定義字符范圍類 367
11.3.6 預定義字符類 368
11.4 正則表達式基本語法—重復類數量詞 369
11.4.1 簡單重復性匹配 369
11.4.2 貪婪匹配 371
1.?、{n}和{n, m}重復類 371 2.*、+和{n, }重復類 372
11.4.3 惰性匹配 372
11.4.4 支配匹配 373
11.5 高級匹配模式 374
11.5.1 分組 374
11.5.2 分組的應用價值 375
11.5.3 引用 376
11.5.4 非引用型分組 377
11.5.5 選擇 378
11.5.6 聲明 380
11.5.7 邊界 380
11.5.8 錨記 382
11.5.9 標志 382
11.6 操作regexp對象 383
11.6.1 實例屬性 383
11.6.2 靜態屬性 384
11.6.3 正則表達式的方法 386
1.靈活的匹配操盤手—exec()方法 386 2.匹配驗證—test()方法 387
11.6.4 比較各種模式匹配的方法 388
第4篇 直搗黃龍
第12章 bom—探訪客戶的秘密 393
12.1 認識浏覽器對象模型(bom) 393
12.2 客戶端全局對象—window 395
12.2.1 全局作用域 396
12.2.2 window對象的生命周期 396
12.2.3 人機交互—學習javascript第一步 397
12.2.4 控制彈出窗口 398
12.2.5 框架之間的通信 399
1.窗口不等於框架 400 2.框架之間相互訪問方式 400
3.框架之間javascript交互 400
12.3 檢測客戶浏覽器信息—navigator對象 401
12.3.1 了解常用浏覽器檢測方法 402
1.特征檢測法 402 2.字符串檢測法 402
12.3.2 檢測浏覽器類型和版本 403
12.3.3 檢測客戶端操作系統 404
12.4 客戶端導航—location和history對象 405
12.4.1 全球定位儀—location對象 405
12.4.2 浏覽簡史—history對象 407
1.使用javascript訪問歷史記錄 407 2.使用javascript訪問幀的歷史記錄 408
12.5 窗口大小控制—screen和window對象 408
12.5.1 屏幕大小—screen對象 408
12.5.2 窗口大小—window對象 409
12.6 0級文檔對象模型—document對象 410
12.6.1 認識文檔對象—document 410
12.6.2 0級文檔對象模型及其讀寫規則 411
12.6.3 動態生成文檔 412
第13章 dom—控制文檔結構的模型 415
13.1 認識dom 415
13.1.1 dom發展概述 415
1.dom 0級 416 2.dom 1級 416
3.dom 2級 416 4.dom 3級 417
13.1.2 檢測浏覽器對dom規范支持程度 417
13.1.3 dom核心 419
13.1.4 dom節點 420
13.2 操作dom文檔 422
13.2.1 html dom加載過程及其處理 422
13.2.2 dom文檔支持的遍歷指針 424
1.childnodes 425 2.firstchild和lastchild 425
3.parentnode 425 4.nextsibling和previoussibling 426
5.documentelement 426
13.2.3 文檔遍歷中的空格bug及其清除 426
13.2.4 實現一個簡單的文檔遍歷 427
13.2.5 擴展遍歷指針函數 428
1.擴展firstchild和lastchild
指針函數 429 2.擴展parentnode指針函數 429
3.擴展nextsibling和previoussibling
指針函數 429
13.2.6 通過原型繼承擴展dom元素的方法 430
13.2.7 增加文檔內容 433
13.3 操作dom節點 435
13.3.1 獲取節點 435
1.使用getelementbyid()方法 435 2.使用getelementbytagname()方法 436
13.3.2 創建節點 437
1.創建節點的基本用法 437 2.創建dom元素的通用方法 438
13.3.3 復制節點 439
13.3.4 插入節點 440
1.使用appendchild()方法 440 2.使用insertbefore()方法 442
13.3.5 刪除節點 442
1.刪除節點的基本用法 443 2.封裝刪除節點的方法 443
3.封裝刪除所有子節點的方法 444
13.3.6 替換節點 444
13.4 操作元素的屬性 445
13.4.1 獲取節點屬性 446
13.4.2 設置節點屬性 447
13.4.3 刪除節點屬性 448
13.4.4 存取javascript屬性 449
13.5 操作元素的內容 449
13.5.1 獲取元素包含的文本 449
13.5.2 獲取元素包含的html信息 450
第14章 event—javascript事件驅動模型 453
14.1 認識javascript事件 453
14.1.1 你未必理解的事件概念 453
14.1.2 事件驅動模型 454
14.1.3 事件處理和監聽函數 455
14.1.4 多線程與異步回調 456
14.2 事件流及其傳播 456
14.2.1 事件傳播過程 457
14.2.2 冒泡型事件流 457
14.2.3 捕獲型事件流 459
14.2.4 dom標准事件流 460
14.3 dom 0級事件模型 460
14.3.1 原始事件的處理方式 460
14.3.2 斫石取火—定義事件 461
14.3.3 直接調用—事件處理函數之趣 463
14.3.4 冷落的返回值—事件處理函數之痕 464
14.3.5 隱形的參數—事件處理函數之謎 465
14.3.6 再說this—事件處理函數之惑 466
14.3.7 身在曹營心在漢—事件處理函數之域 467
14.4 dom 2級事件模型 469
14.4.1 認識dom 2級事件模型 469
1.事件模塊與接口 470 2.dom 2級事件模型的工作機制 470
3.event接口 470 4.uievent接口 471
5.mouseevent接口 471 6.mutationevent接口 471
14.4.2 綁定和銷毀事件 471
1.綁定事件 472 2.銷毀事件 473
14.4.3 為對象注冊多個事件處理函數 473
14.4.4 兼容0級事件模型的處理方法 474
14.4.5 兼容ie的事件處理方法 475
14.5 ie事件模型 475
14.5.1 認識ie事件模型 475
14.5.2 綁定和銷毀事件 476
1.綁定事件 476 2.銷毀事件 476
3.事件處理函數中的this 477 4.綁定多個事件 477
14.5.3 設計可兼容的event對象 478
14.6 事件類型 478
14.6.1 事件類型概述 479
14.6.2 鼠標事件 481
1.鼠標點擊事件類型 482 2.鼠標移動事件類型 482
3.鼠標經過事件類型 484 4.鼠標來源 485
5.鼠標定位 486 6.封裝並應用鼠標定位設計方案 487
7.在元素內部定位鼠標指針 488 8.鼠標按鍵 489
9.鼠標事件響應順序 489
14.6.3 鍵盤事件 490
1.認識鍵盤事件的屬性 490 2.ctrlkey和shiftkey屬性 491
3.keycode和charcode屬性 491 4.鍵盤事件響應順序 493
14.6.4 頁面事件 493
1.頁面初始化—load事件類型 494 2.load事件類型的特殊引用 495
3.在頁面初始化之前執行腳本—
domcontentloaded事件類型 496 4.頁面卸載—unload事件類型 498
5.更人性化的頁面卸載—
beforeunload事件類型 499 6.窗口重置—resize事件類型 499
7.文檔移動—scroll事件類型 500 8.錯誤捕獲—error事件類型 500
14.6.5 ui事件 501
1.獲取焦點—focus事件類型 501 2.失去焦點—blur事件類型 501
14.6.6 表單事件 501
1.選擇文本—select事件類型 502 2.監測表單元素值變化—change
事件類型 502
3.提交表單—submit事件類型 503 4.重置表單—reset事件類型 504
第15章 css—設計html動態效果 507
15.1 dom 2級樣式控制模型 507
15.1.1 cssstylesheet接口 508
15.1.2 cssstylerule接口 508
15.1.3 cssstyledeclaration接口 509
15.2 dom 0級樣式控制模型 510
15.2.1 style對象 510
15.2.2 使用style對象讀寫行內樣式 516
1.讀取樣式的屬性值和屬性名 516 2.設置樣式的屬性值 516
3.移除樣式聲明 517 4.檢測聲明中是否附加!important
關鍵字 517
5.內行樣式設置實戰 517
15.2.3 stylesheets集合 519
15.2.4 訪問css樣式表 521
15.2.5 讀寫css規則 522
15.2.6 訪問最終樣式 525
1.ie的最終樣式 525 2.dom的最終樣式 526
15.2.7 修改css樣式的方法比較 526
1.關於修改class樣式 527 2.關於修改id樣式 527
15.3 尺寸 528
15.3.1 從css樣式表中抽取元素尺寸 528
15.3.2 把抽取的尺寸轉化為實際值 529
15.3.3 使用offsetwidth和offsetheight獲取元素的尺寸 531
15.3.4 超越offsetwidth和offsetheight的缺陷 532
15.3.5 更復雜的元素尺寸 534
15.3.6 可視區域外滾動尺寸 537
15.3.7 浏覽器窗口的尺寸 538
15.4 位置 539
15.4.1 獲取元素在浏覽器窗口中的位置 540
15.4.2 獲取元素相對父元素的位置 543
15.4.3 獲取元素相對包含塊的位置 543
15.4.4 設置元素的偏移位置 544
15.4.5 設置元素的相對位置 544
15.4.6 獲取鼠標指針的頁面位置 545
15.4.7 獲取鼠標指針在元素內的位置 546
15.4.8 獲取頁面滾動條的位置 548
15.4.9 設置頁面滾動條的位置 549
15.5 顯示和隱藏 549
15.5.1 元素的可見性 550
15.5.2 顯示和隱藏功能封裝 550
15.5.3 設置和獲取元素的透明度 551
15.6 動畫 552
15.6.1 定時器 553
1.settimeout()方法 553 2.setinterval()方法 555
3.正確選用settimeout()和
setinterval()方法 555
15.6.2 滑動 556
15.6.3 漸隱漸顯 557
第5篇 飛鴻傳書
第16章 cookie—用戶信息存儲、交互與安全 561
16.1 cookie概述 561
16.1.1 cookie回眸 561
16.1.2 cookie信息的結構 562
16.2 存取cookie信息 563
16.2.1 寫入cookie信息 563
16.2.2 設置cookie有效期 563
16.2.3 設置cookie的域和路徑 564
16.2.4 設置cookie安全傳輸 565
16.2.5 完善寫入的cookie信息 565
16.2.6 讀取cookie信息 566
16.2.7 修改和刪除cookie信息 567
16.2.8 cookie的局限性及其突破 567
16.2.9 探測浏覽器是否啟用cookie 569
16.3 cookie封裝與應用 569
16.3.1 cookie封裝 569
16.3.2 cookie應用:打字測試游戲 571
第17章 xml和json—javascript數據處理模式 575
17.1 更通用的數據—xml 575
17.1.1 認識xml 575
17.1.2 xml文檔結構概述 576
17.1.3 聲明 577
17.1.4 處理指令 577
17.1.5 注釋 578
17.1.6 標記和元素 578
17.1.7 xml屬性 579
17.2 xml dom文檔對象模型 580
17.2.1 認識xml dom文檔對象模型 580
17.2.2 讀取xml數據 582
17.3 ie對xml的支持 584
17.3.1 創建xml dom對象 584
17.3.2 加載xml數據 585
1.設置加載模式 585 2.跟蹤異步加載狀態 585
17.3.3 數據加載錯誤處理 586
17.4 mozilla對xml的支持 587
17.4.1 創建xml dom對象 587
17.4.2 加載xml數據 588
17.4.3 讀取xml數據 589
1.自定義方法模擬text屬性的功能 589 2.自定義方法模擬xml屬性的功能 589
17.5 xml數據導航器—xpath 590
17.5.1 xpath基本語法 590
17.5.2 ie對xpath的支持 592
17.5.3 mozilla對xpath的支持 593
17.6 更敏捷的數據—json 595
17.6.1 json簡介 595
17.6.2 深入json數據內核 598
1.數據的無序結構—對象 598 2.數據的有序結構—數組 598
3.數據的內容—值 599
第18章 ajax—javascript通信接口與異步交互引擎 601
18.1 網絡那點事兒—濃縮的http 601
18.1.1 http請求 602
18.1.2 http響應 604
18.2 暗度陳倉—從隱藏框架說起 605
18.2.1 隱藏框架 605
18.2.2 異步交互與回調處理 608
18.2.3 使用iframe處理異步交互 611
18.3 巧連環—jsonp與跨域異步交互 613
18.3.1 小聰明大智慧—(script)標簽背後的故事 613
18.3.2 動態控制script元素實現可控異步通信 615
18.3.3 script異步通信的參數傳遞 616
18.3.4 script異步通信的響應數據類型 620
18.3.5 jsonp異步通信協議 623
18.3.6 jsonp的安全問題 625
18.4 ajax—更高效的異步通信接口 626
18.4.1 認識xmlhttprequest對象 627
18.4.2 定義xmlhttprequest對象 628
18.4.3 建立xmlhttprequest請求連接 629
18.5 request—發送請求 630
18.5.1 發送get請求 630
18.5.2 發送post請求 631
18.5.3 把數據轉換為串行字符串 633
1.傳輸名/值對信息 633 2.傳輸有序數據列表 633
18.6 state—異步狀態監測 634
18.6.1 跟蹤ajax異步通信狀態 634
18.6.2 中止異步請求 636
18.7 response—獲取響應信息 636
18.7.1 xml 637
18.7.2 html 638
18.7.3 code 639
18.7.4 json 640
18.7.5 text 641
18.7.6 獲取和設置頭部消息 641
18.8 ajax通信功能封裝和應用 642
18.8.1 封裝異步請求函數 642
18.8.2 使用ajax改進tab顯示 643
第6篇 壯士凱旋
第19章 可視化思維—深入javascript面向對象編程 651
19.1 書非借不能讀也—說類 651
19.1.1 類與對象 651
19.1.2 類成員:屬性、方法和事件 652
19.1.3 類的基本特性:繼承、封裝和多態 652
19.2 定義javascript類 653
19.2.1 小老板為什麼能年掙百萬—工廠模式 653
19.2.2 拿來主義—構造函數模式 655
19.2.3 遺傳栽培法—原型模式 657
19.2.4 雜交栽培法—構造函數原型模式 658
19.2.5 滴灌法—動態原型模式 660
19.3 契約書—javascript接口 661
19.3.1 新版黔驢技窮—大話接口 661
19.3.2 簽訂契約書—接口的本質 663
19.3.3 大道理簡單化—javascript接口實現方法一 665
19.3.4 孔明點燈—javascript接口實現方法二 667
19.3.5 雞肋還是雞翅—javascript接口選用之惑 670
19.4 javascript繼承機制—原型(prototype) 671
19.4.1 認識prototype 671
19.4.2 剪不斷理還亂—辨析泛類、類型、原型和對象實例 672
19.4.3 形似神異—構造類的原型和本地特性 674
19.4.4 四大皆空—關於類的唯空論 676
19.4.5 原型屬性的基本操作和應用技巧 678
1.利用原型為對象設置默認值 679 2.利用原型間接實現本地數據備份 680
3.利用原型設置只讀屬性 680 4.利用原型進行批量復制 682
19.4.6 定義靜態原型方法 683
19.4.7 prototype原型域及原型鏈 683
19.4.8 prototype的副作用 685
19.5 javascript基因圖譜—繼承 686
19.5.1 認識javascript的繼承機制 686
19.5.2 原型繼承 688
19.5.3 類繼承的源起 689
19.5.4 類繼承的設計模式 690
19.5.5 深入理解類繼承中call()和apply()角色 693
19.5.6 封裝類繼承機制 695
19.5.7 實例繼承 696
19.5.8 復制繼承 698
19.5.9 克隆繼承 699
19.5.10 混合繼承 699
19.5.11 多重繼承 701
19.5.12 摻元類 702
19.6 類的封裝 704
19.6.1 類的被動封裝 705
19.6.2 類的主動封裝 706
19.6.3 定義類的靜態方法和屬性 708
19.7 類的多態 710
19.7.1 方法的重載和覆蓋 711
1.重載 711 2.覆蓋 711
19.7.2 類的多態 712
19.8 善始善終—類的構造和析構 713
19.8.1 構造 714
19.8.2 動態構造 715
19.8.3 析構 716
19.9 類的抽象化—超類、子類和元類 717
19.9.1 超類和子類 717
19.9.2 元類 718
第20章 卜算子—深入javascript函數式編程 721
20.1 javascript函數式編程概述 721
20.1.1 函數是第一型 721
20.1.2 函數是運算元 722
20.1.3 函數是數據閉包 723
20.2 表達式運算 724
20.2.1 實現連續運算的常用方法 724
20.2.2 嘗試把所有命令式語句轉換為連續運算 727
20.2.3 表達式中的函數 728
20.2.4 函數的惰性與非惰性求值 730
20.2.5 函數調用棧 732
20.3 遞歸運算 734
20.3.1 認識遞歸 735
20.3.2 猜一猜,算一算—遞歸算法演示 736
20.3.3 遞歸算法 738
20.3.4 遞歸模型 738
1.問題的定義是遞歸的 738 2.問題所涉及的數據結構是遞歸的 739
3.問題的解法滿足遞歸的性質 740
20.3.5 hanoi(漢諾)塔算法 740
20.3.6 尾遞歸算法 742
20.3.7 fibonacci(斐波那契)數列 744
20.3.8 遞歸算法的優化 746
20.4 高處不勝寒—破解函數域之惑 747
20.4.1 我是誰—javascript執行環境與函數解析機制 747
20.4.2 我從哪來—詞法作用域與執行作用域 749
20.4.3 尋找迷失的遠方—作用域鏈 751
20.4.4 我又在哪裡—調用對象 753
20.5 天宮之旅—函數閉包 754
20.5.1 從圈外看閉包 754
20.5.2 從圈內看函數閉包 755
20.5.3 解剖閉包結構—認識閉包標識符系統 757
20.5.4 覆蓋還是層迭—關於閉包函數的作用域問題 759
20.5.5 生存還是毀滅—關於閉包函數的生存周期問題 760
20.5.6 辨析函數與閉包 762
20.5.7 奇怪的不等式—函數、調用、引用和實例 763
20.5.8 夢裡花落知多少—閉包函數與函數實例 765
20.5.9 剪不斷理還亂—閉包函數與調用對象 769
20.5.10 保護閉包數據的獨立性 771
20.5.11 始祖鳥—構造函數閉包 773
20.5.12 想你所想—函數式編程中閉包的應用價值 774
20.5.13 一起聯想—函數式編程中閉包的橋梁作用 776
20.5.14 預防中毒—閉包的副作用 779
20.6 我是誰?—徹底研究this 782
20.6.1 who is this—確認this的身份 783
1.this代表當前對象 783 2.this代表當前作用域對象 784
20.6.2 what is this—this的本質 786
1.閉包的破壞性 787 2.call()和apply()方法的破壞性 788
3.異步調用的破壞性 788
20.6.3 where is this—在哪兒使用this 788
1.函數的引用和調用 788 2.call()和apply() 789
3.原型繼承 790 4.異步調用之事件處理函數 791
5.異步調用之定時器 792
20.6.4 how to do this—this應對策略 792
1.預防this多變的基本原則 792 2.把this作為參數值 793
3.設計靜態的this指針 793 4.設計靜態的this擴展方法 794
第21章 流水不腐—深入javascript動態化編程 797
21.1 使用eval()方法動態執行語句 797
21.1.1 動態值、表達式和語句 797 21.1.2 對象和函數直接量的歧義問題 799
21.1.3 eval全局執行域及其兼容方法 800 21.1.4 eval當前執行域 802
21.2 動態調用函數 802
21.2.1 函數調用方法及執行效率比較 802
1.使用小括號運算符調用函數 803 2.使用new運算符調用函數 803
3.使用call()和apply()方法調用函數 804 4.使用定時器調用函數 804
5.使用事件處理函數調用函數 805
21.2.2 函數的調用對象 805
21.2.3 動態調用中的this指針 808
21.2.4 在動態調用中實現繼承 810
21.2.5 動態調用中易迷失的this指針 810
21.2.6 嵌套函數調用中的副作用 812
21.3 動態重寫 814
21.3.1 重寫原型對象 814
21.3.2 重寫構造器 816
21.3.3 重寫方法... 818



相關資源:

免責聲明:本網站內容收集於互聯網,本站不承擔任何由於內容的合法性及健康性所引起的爭議和法律責任。如果侵犯了你的權益,請通知我們,我們會及時刪除相關內容,謝謝合作! 聯系信箱:[email protected]

Copyright © 電驢下載基地 All Rights Reserved