JavaScript修煉之道
內容描述
本書可分為基礎知識、核心技術、級應用和項目實戰四部分內容。
基礎知識部分主要包括標識符、關鍵字和保留字、變量、數據類型、
表達式和運算符、流程控制語句、
在網頁中嵌入JavaScript代碼的三種方式以及程序調試方法等內容;
核心技術部分主要包括JavaScript函數、數組、JSON、字符串的處理、
定時器、Math對象、Date對象、BOM對象、DOM模型以及使用DOM操作HTML文檔及表單和表格、
使用JavaScript操作屬性和元素內容、事件處理、正則表達式等內容;級應用主要包括:JavaScript面向對象及組件開發、Ajax編程等內容;
項目實戰則是使用了HTML5+CSS3+JavaScript實現了一個雲盤。
本書除了詳細介紹了JavaScript的基礎理論外,還詳細介紹了JavaScrilpt核心理論:
“變量提升、作用域鏈、原型鏈”。
本書*具特色的地方是提供了包括圖片的切換、圖片輪播、字符串查找與替換、
選項卡、彈窗、上下文菜單、表單數據有效性校驗、瀑布流佈局、留言本的實現等大量實用案例。
本書可作為大中專院校計算機及相關專業以及相關培訓機構的教材,
也可作為網頁設計、網頁製作、網站建設、Web前端開發等開發人員的參考書。
目錄大綱
目錄:
第1章JavaScript入門1
1.1 JavaScript概述1
1.1.1 JavaScript發展歷史1
1.1.2 JavaScript組成部分及特點2
1.1.3 JavaScript與Java的區別3
1.1.4 JavaScript語法特點及編輯工具3
1.1.5 JavaScript的實際應用場景4
1.1.6 JavaScript實現網頁動態變化原理以及執行順序5
1.2 JavaScript代碼的調試方法6
1.2.1使用alert()方法調試腳本代碼6
1.2.2使用console.log()方法調試腳本代碼8
1.2.3使用Chrome的“發者工具”調試腳本代碼10
1.3第一個JavaScript實例13
1.4標識符、關鍵字和保留字19
1.5直接量20
1.6變量20
1.6.1使用var、let和const聲明變量20
1.6.2變量的內存分配23
1.6.3變量提升和預解析25
1.6.3變量的作用域32
1.6.4作用域鏈34
1.7數據類型37
1.7.1使用typeof運算符檢測數據類型37
1.7.2數字類型38
1.7.3字符串類型39
1.7.4布爾類型41
1.7.5函數類型41
1.7.6對像類型42
1.7.7 null和undefined類型42
1.7.8數據類型的轉換43
1.7.9 isNaN()的應用46
1.8表達式和運算符48
1.8.1算術表達式48
1.8.2關係表達式50
1.8.3邏輯表達式51
1.8.4賦值表達式55
1.8.5條件表達式56
1.8.6 new運算符56
1.8.7運算符的優先級及結合性57
1.9語句58
1.9.1表達式語句58
1.9.2聲明語句58
1.9.3判斷語句59
1.9.4循環語句65
1.9.5循環終止和退出語句68
1.10在網頁中嵌入JS代碼70
1.10.1在HTML標籤的事件屬性中直接添加腳本70
1.10.2使用script標籤插入腳本代碼71
1.10.3使用script標籤鏈接外部JS文件72
練習題73
第2章Array及JSON 74
2.1數組及其在圖片切換中的應用74
2.1.1數組的創建及其元素的引用75
2.1.2數組的常用方法及屬性75
2.1.3數組在圖片切換中的應用82
2.2 JSON 85
2.2.1 JSON數據格式及JSON變量的聲明及應用85
2.2.2 JSON與JS對象的相互轉換及應用86
2.2.3使用for-in遍歷對象屬性87
練習題88
第3章使用JavaScript操作屬性及元素內容89
3.1使用JavaScript操作元素屬性及樣式屬性90
3.1.1屬性讀、寫操作90
3.1.2屬性操作注意事項91
3.2使用classList屬性操作類屬性98
3.3使用cssText屬性設置或修改元素行內樣式100
3.4使用getComputedStyle()和currentStyle獲取樣式102
3.5使用innerHTML屬性訪問或設置元素內容103
3.6自定義屬性及其在圖片切換中的應用105
3.6.1自定義開關屬性及其在圖片切換中的應用106
3.6.2自定義數字屬性及其在圖片切換中的應用107
3.6.3自定義索引屬性及其在圖片切換中的應用108
練習題111
第4章JavaScript函數112
4.1函數定義112
4.2 return語句詳解114
4.3函數調用115
4.4 arguments實參集合對象118
4.5使用函數封裝圖片切換代碼及函數傳參實例120
4.6閉包123
4.7 this指向及this的應用128
4.8內置函數131
練習題133
第5章定時器、Math對象及Date對象134
5.1定時器134
5.1. 1間歇定時器的創建與清除134
5.1.2延遲定時器的創建和清除136
5.1.3使用定時器實現圖片輪播137
5.2 Math對象138
5.3 Date對象的創建及其常用方法140
5.4使用定時器、Date對象和Math對象實現倒時效果142
練習題143
第6章字符串144
6.1字符串概述144
6.2操作字符:charAt()、charCodeAt()和fromCharCode() 146
6.3字符搜索方法:indexOf()和lastIndexOf() 148
6.4截取字符串方法:substring()、substr()和slice() 150
6.5分割字符串方法:split() 152
6.6字符串大小寫轉換及字符串的比較155
練習題156
第7章使用HTML DOM對像操作HTML文檔156
7.1 HTML DOM概述156
7.2節點類型157
7.2.1 document根節點158
7.2.2使用document操作cookie 160
7.2.3元素節點163
7.2.4屬性節點164
7.2 .5文本節點165
7.3使用HTML DOM訪問HTML文檔166
7.3.1獲取文檔元素166
7.3.2操作元素屬性及元素內容167
7.3.3獲取子節點169
7.3.4獲取父節點和兄弟節點171
7.3.5獲取元素的偏移位置172
7.3.6獲取元素的對位置174
7.3.7獲取元素的寬、高175
7.4使用DOM創建、插入、修改和刪除節點176
7.5使用HTML DOM克隆節點178
7.6使用HTML DOM操作表單179
7.6.1表單對象179
7.6.2表單元素對象180
7.7使用HTML DOM操作表格184
練習題188
第8章BOM對象189
8.1 BOM結構189
8.2 window對象189
8.3 navigator對象195
8.4 location對象197
8.5 history對象198
8.6 screen對象199
練習題200
第9章事件處理200
9.1事件處理概述200
9.2事件處理程序的綁定201
9.2.1使用HTML標籤的事件屬性綁定處理程序202
9.2.2使用事件源的事件屬性綁定處理程序203
9.2.3使用addEventListener()綁定處理程序204
9.3事件對象205
9.4事件流206
9.4.1事件冒泡206
9.4.2事件捕獲211
9.4.3 W3C標準事件流213
9.5綁定事件的取消214
9.6事件默認行為的取消215
9.7使用oncontextmenu事件自定義上下文菜單217
9.8焦點事件218
9.9鍵盤事件220
9.10鼠標拖拽事件223
9.10.1鼠標拖拽原理223
9.10.2鼠標拖拽問題及其解決方法224
9.10.3鼠標拖拽事件應用227
9.11鼠標滾輪事件232
練習題233
第10章使用正則表達式進行模式匹配234
10.1模式匹配的引出:找出字符串中的所有數字234
10.2正則表達式的定義235
10.2.1正則表達式的定義方式235
10.2.2正則表達式中的轉義字符236
10.2.3正則表達式中的字符類238
10.2.4正則表達式中的量詞239
10.2.6正則表達式中的首尾匹配、排除符和選擇符240
10.2.7正則表達式中的分組242
10.2.8正則表達式中的修飾符243
10.3使用RegExp對象進行模式匹配244
10.3.1使用exec()進行模式匹配244
10.3.2使用test()進行模式匹配245
10.4使用string對象的模式匹配方法進行匹配248
10.4.1使用match()進行模式匹配248
10.4.2使用replace()進行模式匹配249
10.4.3使用search()進行模式匹配251
10.4.4使用字符串的模式匹配方法實現數據有效性校驗252
練習題253
第11章JavaScript面向對象及組件開發254
11.1 JavaScript面向對象編程概述254
11.2 JavaScript對象的創建255
11.3對象屬性和方法的訪問方式269
11.4原型鏈270
11.5使用面向對象方式編寫選項卡273
11.6包裝對象278
11.7 toString()和valueOf() 279
11.8 JavaScript對象的繼承281
11.8.1通過原型鏈繼承對象281
11.8.2通過借用構造函數實現繼承284
11.8.3組合繼承286
11.8.4拷貝繼承287
11.8.5原型繼承289
11.8.6寄生式繼承290
11.8.7寄生組合式繼承292
11.8.8類繼承293
11.8.9對象繼承在拖拽事件中的應用298
11.9 JavaScript組件開發301
11.9.1組件開發概述301
11.9.2拖拽組件的創建及應用302
11.9.3彈窗組件的創建及應用304
11.9.4自定義事件312
練習題316
第12章Ajax編程317
12.1 XMLHttpRequest對象317
12.1.1創建XMLHttpRequest對象實例318
12.1.2發送GET和POST請求319
12.1.3獲取服務端返回的數據324
12.2使用Ajax實現瀑布流佈局328
12.2.1使用浮動佈局瀑布流328
12.2.2使用對定位佈局瀑布流333
12.3使用Ajax開髮留言本336
12.3.1留言本涉及的數據庫表336
12.3.2留言本的HTML和CSS代碼及初始狀態336
12.3.3留言本的用戶註冊340
12.3.4登陸留言本343
12.3.4退出留言本345
12.3.5發表留言346
12.3.6列表顯示留言349
12.3.7使用Ajax實現類瀑布流佈局效果的留言本352
12.3.8留言本的“頂”和“踩” 353
12.3使用JSONP解決Ajax跨域問題355
12.3.1 JSONP簡介355
12.3.2使用JSONP實現百度下拉提示358
練習題361
第13章Javascript項目實戰-雲盤361
13.1項目結構362
13.1.1自適應屏幕的頁面框架362
13.1.2頁面頭部佈局366
13.1.3側邊欄佈局367
13.1.4路徑導航佈局369
13.1.5文件夾區域佈局371
13.1. 6彈窗及右鍵菜單373
13.2數據結構377
13.2.1查找自己378
13.2.2查找子級379
13.2.3查找父級379
13.2.4查找所有父級379
13.3視圖渲染379
13.3.1側邊欄菜單渲染379
13.3.2路徑導航渲染381
13.4三大區域視圖切換381
13.4.1左側菜單點擊事件添加382
13.4.2路徑導航點擊事件添加382
13.4.3文件夾點擊事件添加383
13.5新建文件夾383
13.5.1添加一條新數據383
13.5.2文件夾命名處理383
13.5.3提示信息彈窗384
13.5.4完成新建文件夾功能385
13.6文件夾的右鍵菜單385
13.6.1右鍵菜單位置處理385
13.6.2刪除當前文件夾386
13.6.3文件夾移動到387
13.6.4文件夾重命名389
13.7文件夾的選中及批量操作392
13.7.1點擊全選框勾選全部392
13.7. 2文件的選中操作393
13.7.2框選操作393
13.7.3批量操作文件夾395
作者介紹
劉偉
妙味課堂miaov.com創始人,擁有8年工程師生涯,
10年教育行業創業經歷; 《前端HTML+CSS修煉之道》作者之一,
出品視頻資料影響超過500萬以上學員,網上零負評;現任開課吧合夥人、大課教研教學VP。