- JavaScript程序設(shè)計:基礎(chǔ)·PHP·XML
- (美)Elizabeth Drake
- 5364字
- 2020-10-30 18:12:17
前言
歡迎閱讀本書。作者創(chuàng)作本書的動機是為兩年期“因特網(wǎng)服務(wù)程序設(shè)計”學習過程中的“因特網(wǎng)程序設(shè)計Ⅰ”課程提供適當?shù)膶W習資料。在完成兩年Web開發(fā)課程之后,學生必須熟悉客戶端和服務(wù)器端腳本語言。盡管有許多很好的關(guān)于靜態(tài)網(wǎng)頁開發(fā)技術(shù)(HTML、XHTML、HTML5和CSS)的書籍,但涉及JavaScript的書籍要么過于繁瑣要么遠超出兩年期學習計劃。因此本書設(shè)計成滿足入門級程序員的需求,使他們能夠很自然地使用JavaScript并且理解它與服務(wù)器端技術(shù)的交互性。
本書可用于為已了解HTML和CSS知識的學生開設(shè)的一學期“JavaScript程序設(shè)計”課程。本書程序設(shè)計基礎(chǔ)部分強調(diào)把程序設(shè)計概念應(yīng)用于JavaScript和PHP中,適用于從來沒有或者略有編程經(jīng)驗的學生。每個概念都通過簡短的例子來幫助讀者加深對概念的理解,短例后面緊跟著面向?qū)嶋H環(huán)境的較長例子。
兩個案例研究貫穿全書:一個游戲網(wǎng)站和一個教學網(wǎng)站。每章都有一節(jié)為這兩個案例研究增加內(nèi)容和功能,并且學生可以在每章末尾的編程挑戰(zhàn)中補充內(nèi)容。另外兩個網(wǎng)站(一個是園藝公司網(wǎng)站,另一個是珠寶公司網(wǎng)站)也可以從零開始建立,并且學生可以在編程挑戰(zhàn)中增強它們的功能。老師可以根據(jù)要求調(diào)整這些內(nèi)容。
本書假定學生已經(jīng)學過HTML和CSS,并且是創(chuàng)建靜態(tài)網(wǎng)頁的好手。然而,不要求學生有編程經(jīng)驗,也不要求學生具備數(shù)學、財務(wù)或其他學科的特殊知識。當最后一章使用SQL命令時,不要求學生已經(jīng)接觸過SQL或數(shù)據(jù)庫。
本書組織
本書從第0章[1]計算機基礎(chǔ)開始,隨后第1章著眼于JavaScript程序設(shè)計入門的一般概念。第1章介紹貫穿全書的案例研究,但本書各章的案例研究是相互獨立的,可以單獨使用。第2章介紹變量、操作符和數(shù)據(jù)類型。對于那些從來沒有學習過程序設(shè)計課程和熟悉程序設(shè)計概念的學生來說,這幾章是非常重要的。理解網(wǎng)頁和JavaScript代碼之間的交互性是JavaScript最基本的重要特征之一。
第3~5章學習JavaScript基本控制結(jié)構(gòu),即順序、選擇和重復。沒有編程經(jīng)驗的學生將學習這些語句結(jié)構(gòu)一般是如何工作的,特別是在JavaScript中。有編程經(jīng)驗的學生可以快速閱讀這幾章。
第6和7章是JavaScript獨有的,包含表單、函數(shù)和外部JavaScript文件。由于大多數(shù)學生已經(jīng)在靜態(tài)網(wǎng)頁中使用過表單,所以這里以與JavaScript程序?qū)拥姆椒ㄓ懻摫韱巍?/p>
第8和9章包含數(shù)組和幾種高級搜索與排序技術(shù),這兩章連同后面的三章最適合具有牢固編程基礎(chǔ)的學生。
第10章討論文檔對象模型并介紹XML,第11和12章介紹PHP。學完這三章后,學生將能夠開發(fā)使用數(shù)據(jù)庫處理數(shù)據(jù)的網(wǎng)站。學生可以使用免費程序XAMPP在計算機上建立一個含有MySQL和PHP軟件的Apache服務(wù)器。本書將詳細介紹這個軟件的操作方法。不需要具備MySQL或數(shù)據(jù)庫知識,學生可以借助給出的MySQL命令建立使用數(shù)據(jù)庫、服務(wù)器和PHP的實際環(huán)境,從而創(chuàng)建一個動態(tài)網(wǎng)站。
每章都有很多例子。自始至終,例子、檢查點和練習的難度依次從最基本的概念理解提高到非常有挑戰(zhàn)性的實際應(yīng)用。每章包含一節(jié) 操作實踐,在此開發(fā)案例研究網(wǎng)站Greg's Gambits和Carla's Classroom。在每章末尾的編程挑戰(zhàn)部分,要求學生對這些案例研究進行補充。如果從本書開始學習到結(jié)束,開發(fā)的這些案例研究將建成健壯的網(wǎng)站。編程挑戰(zhàn)還包含另外兩個案例研究,即Lee's Landscape和Jackie's Jewelry網(wǎng)站,學生將完全靠自己建立這兩個網(wǎng)站。本書在編程挑戰(zhàn)部分為Greg's Gambits和Carla's Classroom項目提供了很多幫助,而為Lee's Landscape和Jackie's Jewelry項目只提供了很少的幫助。老師可以決定學生完成這些項目的獨立程度。
練習部分包含填空題、判斷題和簡答題,而在編程挑戰(zhàn)部分學生能夠使用相應(yīng)章節(jié)學習的知識創(chuàng)建自己的網(wǎng)頁。
各章簡介
格式說明
本書通過使用不同的字體來區(qū)分程序代碼,變量和數(shù)組名是粗體。有時某些代碼必須單行錄入,但是限于紙張大小不可能完整地把這些代碼顯示在一行,因此使用符號表示下一行代碼應(yīng)該是上一行的一部分,這個符號不應(yīng)該包含在內(nèi)。如果沒有符號
,那么下列樣例代碼應(yīng)該錄入在同一行。注意,其中的變量dinner是粗體:
第1章 本章介紹程序設(shè)計和JavaScript,討論程序設(shè)計的一般問題解決策略以及程序的基本結(jié)構(gòu)和3種控制結(jié)構(gòu),討論用偽代碼和流程圖規(guī)劃程序以及數(shù)據(jù)類型,引導學生在網(wǎng)頁中創(chuàng)建JavaScript腳本,討論對象、點標記以及幾個重要的JavaScript方法和事件,介紹Greg's Gambits和Carla's Classroom網(wǎng)站并使用JavaScript為這些網(wǎng)站創(chuàng)建交互頁面。
第2章 本章著眼于變量、JavaScript數(shù)據(jù)類型和操作符(包括算術(shù)、關(guān)系和邏輯操作符),解釋類似JavaScript的弱類型語言和強類型語言的區(qū)別,討論連接操作符的使用和JavaScript對用戶輸入數(shù)字的處理方法,討論條件操作符從而使學生在不會使用選擇結(jié)構(gòu)的情況下創(chuàng)建有趣的頁面,討論操作符優(yōu)先級和ASCII碼。學生要為Greg's Gambits網(wǎng)站創(chuàng)建填字游戲并為Carla's Classroom網(wǎng)站創(chuàng)建拼寫課。
第3章 本章討論判斷(選擇)結(jié)構(gòu)(包含單路、二路和多路分支結(jié)構(gòu))。介紹switch語句、驗證方法和Math對象,使用嵌套選擇結(jié)構(gòu)和復合條件開發(fā)程序。學生可以使用Math.random()方法創(chuàng)建有趣的程序,要為Greg's Gambits創(chuàng)建幸運預言程序并且為Carla's Classroom創(chuàng)建一門算術(shù)課。
第4章 本章從重復結(jié)構(gòu)開始,著眼于基本的循環(huán)結(jié)構(gòu):前測、后測循環(huán),哨兵控制循環(huán),計數(shù)器控制循環(huán)以及用于數(shù)據(jù)輸入和數(shù)據(jù)驗證的循環(huán)。循環(huán)語句包括while循環(huán)、do...while循環(huán)和for循環(huán)。學生要為Greg's Gambits創(chuàng)建一個信息編碼器并且為第3章創(chuàng)建的Carla's Classroom算術(shù)課增加很多功能和深度。
第5章 本章進一步探討第3章和第4章涉及的重復結(jié)構(gòu)和選擇結(jié)構(gòu),通過使用Math對象的一些方法介紹總數(shù)和平均數(shù)的計算方法,深入探討嵌套結(jié)構(gòu)(包括循環(huán)中的選擇結(jié)構(gòu)、循環(huán)中的循環(huán)和選擇結(jié)構(gòu)中的循環(huán))以及臺式檢查。介紹提前退出循環(huán)的各種方法。學生要為Greg's Gambits創(chuàng)建一個戰(zhàn)斗游戲(石頭-紙-剪刀游戲的變種)并且為Carla's Classroom創(chuàng)建語法課。
第6章 大多數(shù)學過網(wǎng)頁制作課程的學生已經(jīng)處理過表單,然而本章的目的是讓學生熟悉用JavaScript處理表單。由于網(wǎng)頁制作課程已經(jīng)討論過基本的表單控件(單選按鈕、復選框、文本框、文本區(qū)框、選擇列表)以及隱藏字段和特殊控件(密碼元素、提交和重置按鈕),因此本章著眼于把表單數(shù)據(jù)返回給JavaScript程序,然后這個程序可以使用這些數(shù)據(jù)并且把其他信息返回給網(wǎng)頁或者通過電子郵件把信息發(fā)送給用戶。學生要為Greg's Gambits網(wǎng)站用戶創(chuàng)建一個物品目錄頁面,并且為Carla's Classroom網(wǎng)站的Carla生成一份將發(fā)送給學生父母的學習進度報告。
第7章 本章包含函數(shù)、對象和JavaScript源文件,討論內(nèi)置和自定義函數(shù),包含變量作用域、使用實參和形參、值參數(shù)和引用參數(shù)、按引用傳遞與按值傳遞,介紹新的對象(Boolean對象和Date對象)并且提供Math對象的更多信息,介紹創(chuàng)建和使用外部JavaScript源文件。學生要為Greg's Gambits創(chuàng)建一個懸吊人猜字游戲,并且為Carla's Classroom創(chuàng)建閱讀理解課。
第8章 本章是著眼于數(shù)組的兩章中的一章,討論作為JavaScript對象的數(shù)組概念(包含一維數(shù)組、二維數(shù)組和平行數(shù)組),討論裝載數(shù)組的不同方法以及幾個添加和刪除數(shù)組元素的JavaScript數(shù)組方法。學生要為Greg's Gambits創(chuàng)建一個數(shù)字拼圖游戲15,并且為Carla's Classroom創(chuàng)建一個幻燈片放映。
第9章 本章基于第8章,講解排序和搜索數(shù)組,討論JavaScript的sort()和reverse()方法。為了維護平行數(shù)組的完整性,開發(fā)其他搜索和排序方法,包括兩個排序算法(冒泡排序和選擇排序)、兩個搜索算法(線性搜索和二分搜索)以及一些實施搜索的JavaScript方法。學生要為Greg's Gambits創(chuàng)建一個拼字游戲并且為Carla's Classroom創(chuàng)建因數(shù)分解課。
第10章 本章從JavaScript轉(zhuǎn)到相關(guān)主題,討論文檔對象模型(DOM)和XML,討論DOM節(jié)點和樹的概念以及網(wǎng)頁的父子模型,討論用DOM技術(shù)創(chuàng)建、插入、刪除和替換元素以及使用DOM方法創(chuàng)建定時器。本章還介紹了XML、XSL、命名空間和模式。在為Greg's Gambits創(chuàng)建頁面時,結(jié)合使用XML和JavaScript是顯示數(shù)據(jù)的另一種替代方法,結(jié)合使用XML和JavaScript為Carla's Classroom創(chuàng)建拼寫課。
第11章 這是兩章PHP相關(guān)內(nèi)容的一章。要使用PHP,學生必須能夠訪問服務(wù)器。本章向?qū)W生介紹XAMPP的安裝和使用方法,它是一個包含Apache服務(wù)器、PHP和MySQL的免費程序,并且能夠安裝在任何個人計算機或筆記本電腦上。本章討論PHP基本知識,包括PHP文件名、如何訪問Apache服務(wù)器的文件、PHP數(shù)據(jù)類型、PHP操作符和PHP關(guān)鍵字,介紹PHP的基本程序結(jié)構(gòu)(包括順序、選擇和重復)與PHP數(shù)組和字符串,強調(diào)在服務(wù)器上為網(wǎng)站創(chuàng)建適當?shù)奈募A結(jié)構(gòu)。學生要使用PHP為Greg's Gambits創(chuàng)建歡迎頁面,并且通過使用ajax_post()函數(shù)讓用戶向服務(wù)器發(fā)送和返回數(shù)據(jù)。學生還要使用PHP為Carla's Classroom創(chuàng)建一個頁面,讓用戶輸入部分名字然后程序顯示一個大數(shù)組中的所有條目或者以那些字符開頭的列表(也就是說,程序為用戶提供可用選項并最終能夠用于自動完成用戶錄入)。
第12章 本章在第11章介紹PHP的基礎(chǔ)上示范如何完成兩個特別而又重要的任務(wù),討論創(chuàng)建和讀取Cookie,指引學生使用phpMyAdmin控制臺創(chuàng)建數(shù)據(jù)庫(它是XAMPP安裝的一部分)。然后,使用PHP方法填充數(shù)據(jù)庫。因為本書不包括MySQL的學習并且不要求學生具備數(shù)據(jù)庫管理和MySQL知識,所以本章給出開發(fā)程序所需要的所有MySQL命令和語句,并且給出解釋。這樣,學生就能夠為想要成為Greg's Gambits游戲網(wǎng)站成員的玩家創(chuàng)建和驗證賬戶。學生也要為Carla's Classroom創(chuàng)建一個數(shù)據(jù)庫,并且從數(shù)據(jù)庫中提取信息從而向?qū)W生父母發(fā)送一封電子郵件報告。
附錄A 列出可打印和不可打印的ASCII字符,每個字符有對應(yīng)的十進制數(shù)和十六進制數(shù)編碼。
附錄B 列出算術(shù)操作符、關(guān)系操作符和邏輯操作符(如本書所用)以及操作符優(yōu)先級表。
附錄C 列出最常見的HTML實體,包含表示HTML保留字的實體。
附錄D 列出下列對象的屬性和方法:Array、Boolean、Date、Math、Number、String和RegExp,并列出JavaScript全局屬性和函數(shù)。
附錄E 解釋jQuery概念、如何在網(wǎng)頁中包含它、在哪里獲取它、如何存儲它以及jQuery函數(shù)的一個簡短樣例。
附錄F 列出最常用的DOM屬性、方法和事件以及3個重要的節(jié)點屬性。
附錄G 列出PHP保留字和關(guān)鍵字以及PHP預定義常量。
附錄H 列出包含本書使用的常用PHP MySQL函數(shù)。
附錄I 列出本書檢查點的答案。
本書特色
例子
本書有超過235個已編號的可運行例子。所有程序代碼行都標注了行號,并且通過引用行號詳細解釋每個例子的代碼。展示的所有代碼已經(jīng)測試過,如果學生復制和運行這些例子,程序?qū)⒄_\行。截屏展示相應(yīng)的運行結(jié)果。
檢查點
在每節(jié)末尾有5~10題檢查點練習,以強化最重要的概念和編碼技能。檢查點的答案在附錄I中。
操作實踐
每章的最后有一節(jié)是操作實踐,用于開發(fā)和擴展兩個網(wǎng)站。Greg's Gambits是一個游戲網(wǎng)站,學生將在每章為這個網(wǎng)站逐步創(chuàng)建新的游戲或特征。Carla's Classroom是為一位小學老師開發(fā)的網(wǎng)站,學生將在每章為這個網(wǎng)站逐步創(chuàng)建老師可以在課堂中使用的課程或特色。本書為這兩個網(wǎng)站開發(fā)了完整代碼,并且在復習與練習中擴展這些網(wǎng)站的內(nèi)容。在復習與練習的編程挑戰(zhàn)一節(jié)包含一些練習,要求學生為Greg's Gambits創(chuàng)建新游戲或者為Carla's Classroom創(chuàng)建新課程。這些任務(wù)是操作實踐工作的延續(xù),但是可能有新的要求。在編程挑戰(zhàn)中,為Greg's Gambits引入的概念將用于Carla's Classroom的新項目,Greg's Gambits的新項目將利用Carla's Classroom的概念和技能。因此,如果指導老師從本書開始到結(jié)束跟隨開發(fā)其中的一個網(wǎng)站,那么將能夠幫助學生創(chuàng)建一個包含所有重要概念和技能的實際項目,也就是創(chuàng)建一個健壯的實用網(wǎng)站。
操作實踐一節(jié)按如下方式組織:學生可以使用提供的代碼實施項目,并且在編程挑戰(zhàn)中自己創(chuàng)建類似而又有所擴展的代碼來擴展知識和技能。
在Student Data Files中包含這些項目需要的所有文件,如圖像、文本文件等。
練習
每章包含從簡單到復雜的40多道練習題,這些練習題分為以下幾類。
·每節(jié)末尾的檢查點測試學生對這一節(jié)內(nèi)容的理解程度。
·每章末尾的練習包括:
·填空題
·判斷題
·簡答題
·編程挑戰(zhàn):
·使用本章概念創(chuàng)建簡短網(wǎng)頁。
·擴展操作實踐創(chuàng)建的網(wǎng)頁,或者為Greg's Gambits和Carla's Classroom增加新內(nèi)容。
·從零開始建立兩個公司網(wǎng)站Lee's Landscape和Jackie's Jewelry中的一個,每章增加一點內(nèi)容。
檢查點的答案放在附錄I和網(wǎng)站www.pearsonhighered.com/irc中。Student Data Files提供復習與練習中奇數(shù)編號的答案,包括編程挑戰(zhàn)中的參考答案并提供完整的必要代碼。在Student Data Files中包含要完成任何項目需要的所有文件,包括圖像、JavaScript源文件和文本文件等。
輔助資料
學生支持網(wǎng)站
學生可以從本書英文版的配套網(wǎng)站(www.pearsonhighered.com/drake)下載以下多種可用的資料:
·每章的幻燈片講稿。
·所有檢查點的答案。
·所有原版書奇數(shù)編號練習的答案。
·視頻課件。
·所有例子、操作實踐和練習需要的圖像、文本文件和其他外部文件。
教師輔助資料
Pearson教師資源中心為有資格的老師提供多種輔助資料,包括:
·每章的幻燈片講稿。
·所有檢查點的答案。
·所有練習的答案,包括奇數(shù)編號和偶數(shù)編號。
·一些編程挑戰(zhàn)的解決方案。
·各章所有的例子、練習和檢查點需要的HTML、JavaScript、XML和PHP程序。
·視頻課件。
·所有例子、操作實踐和練習需要的圖像、文本文件和其他外部文件。
·各章試題庫。
要獲取這些資料,可以訪問網(wǎng)站www.pearsonhighered.com/irc或者與Pearson Education銷售代理聯(lián)系[2]。
致謝
正如沒有最恰當?shù)姆椒ń坛绦蛟O(shè)計一樣,也沒有最恰當?shù)姆椒▽懗绦蛟O(shè)計的書。在寫作本書時,我很幸運得到了以下經(jīng)驗豐富的老師提供的不同觀點和很多有幫助的建議:
Brenda Terry,富勤頓學院
Leong Lee,奧斯汀佩伊州立大學
Dave Wilson,帕克蘭學院
Tony Pittarese,東田納西州立大學
Dave Sciuto,馬薩諸塞大學盧維爾分校
Janos T.Fustos,丹佛大都會州立大學
Sam Sultan,紐約大學
Nancy McCurdy,圣達菲學院
特別感謝專業(yè)軟件/Web開發(fā)師Anton Drake在為第10~12章開發(fā)Greg's Gambits和Carla's Classroom網(wǎng)站方面提供的無價幫助。Anton的貢獻在于充當XML、PHP和MySQL內(nèi)容的顧問并且協(xié)助編寫了這幾章的代碼。
我非常榮幸與如此可愛的Pearson支持團隊合作。Matt GolDstein為本書的出版提供機會,我將永遠感謝他。Kathy Cantwell精煉了本書文字。Marilyn Lloyd和Scott Disanno一直支持我寫作。Greg Dulles和Kayla Smith-Tarbox幫我尋找圖像,從而使網(wǎng)站具有活力。Jenah Blitz-Stoehr親自回答我的所有普通問題。Pearson的每個人都是友好親切、樂于助人和鼓舞人心的,作者提出的要求都會一一滿足。
我也要感謝Anton和寵物的耐心讓我長時間敲打鍵盤,感謝全家對我的愛和鼓勵讓我花費大量時間做我熱愛的事情——寫作。
——Elizabeth Drake
[1] 第0章作為教輔資源放在華章網(wǎng)站(www.hzbook.com)上,有需要者可下載。——編輯注
[2] 關(guān)于本書教輔資源,用書教師可向培生教育出版集團北京代表處申請,電話:010-57355169/57355171,電子郵件:service.cn@pearson.com。——編輯注
- Learning Apex Programming
- Angular UI Development with PrimeNG
- Java完全自學教程
- 構(gòu)建移動網(wǎng)站與APP:HTML 5移動開發(fā)入門與實戰(zhàn)(跨平臺移動開發(fā)叢書)
- Vue.js 3.x從入門到精通(視頻教學版)
- HTML5 Mobile Development Cookbook
- 深入淺出RxJS
- 碼上行動:用ChatGPT學會Python編程
- Microsoft Azure Storage Essentials
- SSM開發(fā)實戰(zhàn)教程(Spring+Spring MVC+MyBatis)
- Web前端應(yīng)用開發(fā)技術(shù)
- Android傳感器開發(fā)與智能設(shè)備案例實戰(zhàn)
- Continuous Delivery and DevOps:A Quickstart Guide Second Edition
- Java 9 with JShell
- Building a Media Center with Raspberry Pi