JavaScript修煉之道

JavaScript修煉之道

作者: 聶常紅 劉偉
出版社: 人民郵電
出版在: 2020-04-01
ISBN-13: 9787115528971
ISBN-10: 7115528977
裝訂格式: 平裝
總頁數: 395 頁





內容描述


本書可分為基礎知識、核心技術、級應用和項目實戰四部分內容。
基礎知識部分主要包括標識符、關鍵字和保留字、變量、數據類型、
表達式和運算符、流程控制語句、
在網頁中嵌入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。




相關書籍

XQuery: Search Across a Variety of XML Data, 2/e (Paperback)

作者 Priscilla Walmsley

2020-04-01

Software Pipelines and SOA: Releasing the Power of Multi-Core Processing

作者 Cory Isaacson

2020-04-01

JS 絕對版本相容性 - Webpack + Babel 完美結合 開發實戰

作者 姜瑞濤

2020-04-01