- 21天學(xué)通JavaScript
- 顧寧燕等編著
- 6437字
- 2018-12-29 13:30:25
第一篇 JavaScript基礎(chǔ)篇
第1章 JavaScript概述
“千里之行,始于足下”。這句千古遺訓(xùn)蘊(yùn)含著深刻的道理,在計(jì)劃安排停當(dāng)之后需要開始落實(shí)行動(dòng)。只有從現(xiàn)在的腳下開始出發(fā),才能達(dá)千里之外的目的地。學(xué)習(xí)JavaScript最好從了解它的起源開始,了解其產(chǎn)生的背景,為了什么產(chǎn)生,從而知道其主要應(yīng)用場合,對(duì)今后的學(xué)習(xí)和目標(biāo)的建立有莫大的幫助。本章將向讀者講解JavaScript的背景和現(xiàn)在的狀況,以及未來可能的發(fā)展方向。通過本章的學(xué)習(xí),讀者將學(xué)會(huì)編寫一個(gè)最簡單的JavaScript程序并知道如何運(yùn)行。
● 了解JavaScript產(chǎn)生的背景
● 了解JavaScript和其他腳本語言的異同
● 了解如何編寫一個(gè)JavaScript程序并運(yùn)行它
● 牢記編寫JavaScript程序的注意事項(xiàng)
以上幾點(diǎn)是對(duì)讀者在學(xué)習(xí)本章內(nèi)容時(shí)所提出的基本要求,也是本章希望能夠達(dá)到的目的。讀者在學(xué)習(xí)本章內(nèi)容時(shí)可以將其作為學(xué)習(xí)的參照。
1.1 初識(shí)JavaScript
JavaScript是世界上使用人數(shù)最多的程序語言之一,幾乎每一個(gè)普通用戶的電腦上都存在JavaScript程序的影子。然而絕大多數(shù)用戶卻不知道它的起源,以及如何發(fā)展至今。JavaScript程序設(shè)計(jì)語言在Web領(lǐng)域的應(yīng)用越來越火,未來它將會(huì)怎樣發(fā)展,本節(jié)將對(duì)這部分內(nèi)容分別講述。
1.1.1 理解JavaScript的歷史
在互聯(lián)網(wǎng)形成的初期,Web技術(shù)遠(yuǎn)遠(yuǎn)沒有像今天這樣豐富以至于讓人難以選擇。當(dāng)時(shí),最基本的在Web客戶端進(jìn)行數(shù)據(jù)有效性驗(yàn)證都非常麻煩,瀏覽器端的用戶體驗(yàn)效果非常單調(diào),幾乎沒有交互性。今天所看到的全動(dòng)態(tài)Flash、SilverLight、JavaScript等精彩應(yīng)用在當(dāng)時(shí)都沒有,有的只是純HTML靜態(tài)頁。
基于這樣的現(xiàn)狀,Netscape公司在它的Navigator Web瀏覽器中增加了腳本功能,以簡單的方式實(shí)現(xiàn)瀏覽器中的數(shù)據(jù)驗(yàn)證,該腳本名為LiveScript。與此同時(shí),Java技術(shù)也逐漸紅火,其特點(diǎn)也正好能彌補(bǔ)Web客戶端交互性方面的不足。Netscape公司在其Navigator瀏覽器中支持JavaApplet時(shí),考慮JavaApplet與LiveScript目標(biāo)的相似性,將LiveScript更名JavaScript,可以理解為其欲借Java之勢以求發(fā)展。
JavaScript語言剛推出就在市場獲得巨大的成功,這表現(xiàn)在Navigator瀏覽器的用戶量上。當(dāng)JavaScript語言的使用形成一種大趨勢之后,微軟的IE瀏覽器也增加對(duì)JavaScript語言的支持,這加快了JavaScript語言發(fā)展的速度。
微軟公司的IE瀏覽器搭乘Windows操作系統(tǒng)這艘巨艦在市場上獲得了空前的成就,同時(shí)微軟也實(shí)現(xiàn)了一門兼容JavaScript的腳本語言,命名為JScript。如今對(duì)JavaScript的支持已經(jīng)成為Web瀏覽器中不可缺少的技術(shù)。
提示:很多種有名的編程語言起初都是由個(gè)人或小團(tuán)體創(chuàng)造出來,逐步完善并發(fā)展壯大。
1.1.2 JavaScript標(biāo)準(zhǔn)
眾多Web瀏覽器對(duì)JavaScript的支持也很不一致,相同的語言特性在不同的瀏覽器中會(huì)有所差異。這種差異對(duì)開發(fā)者影響極大,開發(fā)時(shí)不得不為不同的瀏覽器編寫不同的代碼,這種難堪的局面一直持續(xù)到JavaScript標(biāo)準(zhǔn)的制定。1997年發(fā)布了ECMA-262語言規(guī)范,將JavaScript語言標(biāo)準(zhǔn)化并重命名為ECMAScript,現(xiàn)在各種瀏覽器都以該規(guī)范作為標(biāo)準(zhǔn)。
提示:語言和系統(tǒng)接口標(biāo)準(zhǔn)化后可以大大減輕應(yīng)用開發(fā)人員的負(fù)擔(dān),不用為不同的語言特性或接口編寫不同的代碼,這也增強(qiáng)了軟件的可移植性。
1.1.3 JavaScript的現(xiàn)況
隨著Ajax的技術(shù)大潮,JavaScript重新受到Web開發(fā)者的重視。在此之前JavaScript主要應(yīng)用還是在客戶端實(shí)現(xiàn)一些數(shù)據(jù)驗(yàn)證等簡單工作,多媒體交互應(yīng)用被類似Flash的技術(shù)搶占了市場。正當(dāng)JavaScript處于低潮的時(shí)候,Ajax技術(shù)被開發(fā)出來了,簡單地說就是利用JavaScript的異步更新機(jī)制實(shí)現(xiàn)Web頁的局部刷新。當(dāng)一個(gè)頁面不需要全部重新加載,只要加載部分?jǐn)?shù)據(jù)即可的時(shí)候,互聯(lián)網(wǎng)的運(yùn)行速度便大大加快了。JavaScript因此在Web開發(fā)中站在了一個(gè)更加重要的位置。如圖1-1所示是JavaScript在瀏覽器中的層次結(jié)構(gòu)。

圖1-1 瀏覽器中的JavaScript
很多開發(fā)者開始挖掘JavaScript其他方面的潛力,打算發(fā)現(xiàn)類似Ajax那樣令人吃驚的東西。結(jié)合W3C現(xiàn)行的DOM規(guī)范,JavaScript表現(xiàn)出了驚人的魅力,涌現(xiàn)出很多基于Web的應(yīng)用程序,這是在Web客戶端方面。在服務(wù)器端技術(shù)中,微軟公司也將JavaScript納入了.NET語言的范疇,使其成了ASP.NET的語言工具,開發(fā)者不必重新學(xué)習(xí)語言即可運(yùn)用ASP.NET技術(shù)。如今基于JavaScript的應(yīng)用不勝枚舉,讀者朋友大可上互聯(lián)網(wǎng)去了解更多的信息。
提示:自從Ajax技術(shù)出現(xiàn)之后,人們重新重視了JavaScript的價(jià)值,如今不少開發(fā)者使用JavaScript開發(fā)出極具價(jià)值的通用程序框架,例如一些流行的WEB UI庫。
1.1.4 JavaScript的發(fā)展趨勢
語言永遠(yuǎn)被當(dāng)做工具,這一點(diǎn)從來都沒有被改變過,以后也不會(huì),語言是使用及和其他技術(shù)進(jìn)行交流的方式和手段。例如,在Windows平臺(tái)上,使用ADODB組件可以使JavaScript能處理支持SQL的數(shù)據(jù)庫中的數(shù)據(jù),使用FSO組件可以實(shí)現(xiàn)本地文件IO功能。這一切都說明了JavaScript位于應(yīng)用開發(fā)的最頂端,其與低層技術(shù)的實(shí)現(xiàn)無關(guān),層次結(jié)構(gòu)如圖1-2所示。
盡管平臺(tái)技術(shù)不斷發(fā)生變化,JavaScript仍將以不變的形式去使用平臺(tái)提供的能力從而適應(yīng)新的需求。未來的一段時(shí)間內(nèi),Web開發(fā)將是開發(fā)者眾聚之地,也是JavaScript變得紫紅的時(shí)代。

圖1-2 JavaScript在系統(tǒng)中的位置
1.2 簡單的腳本語言
JavaScript是一門腳本語言,它如導(dǎo)演手中的劇本命令一樣,使原來獨(dú)立零散的演員按劇情協(xié)調(diào)組織表演從而獲得觀眾的掌聲。腳本需要簡單易懂,有針對(duì)性以能運(yùn)用于一個(gè)特定的場合。本節(jié)將向讀者介紹更多有關(guān)腳本的知識(shí)。
1.2.1 認(rèn)識(shí)腳本語言
腳本語言是一種應(yīng)用程序擴(kuò)展語言,用于系統(tǒng)的擴(kuò)展,使其按用戶的意愿去運(yùn)行。所有的基礎(chǔ)功能由系統(tǒng)提供,腳本語言在更高層次描述如何調(diào)用系統(tǒng)的接口。和其他編程語言不同,腳本語言通常不需要經(jīng)歷編譯和鏈接這些階段,大都直接解釋執(zhí)行。也有的語言需要編譯,但這是為了執(zhí)行得更快一點(diǎn)。
提示:與電影腳本的含義及作用相似,JavaScript是用于實(shí)現(xiàn)程序中的事務(wù)流程控制,組織多個(gè)邏輯對(duì)象一起完成工作。
1.2.2 腳本語言的分類
如今成熟的腳本語言非常多,根據(jù)使用方式的不同分成嵌入式和非嵌入式兩類。嵌入式腳本語言,這類語言通常為了應(yīng)用程序的擴(kuò)展而開發(fā)出來。解釋器通常嵌入在被擴(kuò)展的應(yīng)用程序中,成為宿主程序的一部分。例如Lua語言、Python語言的嵌入性也比較好,如今這兩者在游戲開發(fā)領(lǐng)域應(yīng)用較多,通常作為游戲軟件的腳本系統(tǒng)或配置文件。根據(jù)筆者的經(jīng)驗(yàn),Lua語言無論在嵌入性和運(yùn)行效率上都遠(yuǎn)超過其他語言,將Python語言納入嵌入式語言分類中有些勉強(qiáng),因?yàn)槠涓衿渌?dú)立運(yùn)行的語言。
非嵌入式腳本語言,這類語言無須嵌入其他程序中,例如本書所講的JavaScript語言。這些語言主要應(yīng)用不是作為系統(tǒng)擴(kuò)展,而是實(shí)現(xiàn)一般的任務(wù)控制。
提示:將語言分類比較勉強(qiáng),因?yàn)槠湓陂_發(fā)的時(shí)候大都針對(duì)某一類應(yīng)用而不先考慮屬于某一類。
1.2.3 JavaScript的作用
JavaScript主要運(yùn)用在瀏覽器端,處理用戶的輸入實(shí)現(xiàn)交互功能。例如在會(huì)員注冊(cè)頁面將數(shù)據(jù)發(fā)送到服務(wù)器前,使用JavaScript程序檢查用戶輸入的數(shù)據(jù)是否符合要求。可以使用JavaScript通過DOM對(duì)象操作HTML頁中的各個(gè)節(jié)點(diǎn)元素,動(dòng)態(tài)修改HTML文檔的內(nèi)容,實(shí)現(xiàn)基于Web的應(yīng)用。JavaScript可以結(jié)合數(shù)據(jù)庫組件、文件系統(tǒng)組件等擴(kuò)展組件實(shí)現(xiàn)任何想要的功能。
1.2.4 JavaScript和其他語言的異同
JavaScript和其他語言腳本語言一樣,都應(yīng)用于高級(jí)任務(wù)控制,大多都是解釋執(zhí)行,都屬于弱類型語言,數(shù)據(jù)類型在運(yùn)行時(shí)決定,實(shí)現(xiàn)自動(dòng)內(nèi)存管理機(jī)制,資源的分配策略相似。但不同的是,JavaScript運(yùn)行于瀏覽器中,主要用于Web開發(fā),這方面它和VBScript一樣;而其他眾多腳本語言都運(yùn)用于特定的軟件環(huán)境以幫助實(shí)現(xiàn)任務(wù)自動(dòng)化,例如3DS Max的MaxScript,使用該腳本語言可以使3DS Max產(chǎn)生和手動(dòng)操作圖形界面命令一樣的效果,這就是任務(wù)的自動(dòng)化。
1.2.5 JavaScript與Java的異同
令知情人士難以忍受的是很多不了解的人都以為JavaScript和Java存在莫大的關(guān)系,事實(shí)上二者毫無關(guān)系。勉強(qiáng)的說法就是這兩者都屬于編程語言,都帶有“Java”字樣。而實(shí)際上, JavaScript是一門基于Web瀏覽器、解釋執(zhí)行、輕量級(jí)編程語言;Java則是運(yùn)行于Java虛擬機(jī)、編譯執(zhí)行、重量級(jí)編程語言。有關(guān)JavaScript的背景知識(shí)已經(jīng)介紹了不少,在此不再贅述。
Java是一個(gè)龐大復(fù)雜的技術(shù)體系及其開發(fā)工具的總稱,Java語言是使用Java技術(shù)的主要工具。Java語言編寫的程序通過編譯器編譯為字節(jié)碼目標(biāo)程序,執(zhí)行時(shí)交由Java虛擬機(jī)處理,其具有非常強(qiáng)大的跨平臺(tái)特性,這些和JavaScript截然不同。
提示:讀者可以認(rèn)為JavaScript和Java之間沒有任何聯(lián)系。
1.3 第一個(gè)JavaScript程序
學(xué)習(xí)每一門新語言,大致了解了它的背景之后,最想做的莫過于先寫一個(gè)最簡單的程序并成功運(yùn)行。如果最初連續(xù)幾個(gè)程序都無法成功編譯或運(yùn)行,初學(xué)者學(xué)習(xí)的信心多少會(huì)受些打擊,這是正常現(xiàn)象。本節(jié)將帶領(lǐng)讀者對(duì)JavaScript進(jìn)行第一次實(shí)踐嘗試,用它編寫一個(gè)最簡單且流行了幾十年的“HelloWorld”程序。
1.3.1 預(yù)備知識(shí)
JavaScript程序運(yùn)行于瀏覽器中,因此這里的“HelloWorld”程序?qū)⑶度朐贖TML文檔里,使用document對(duì)象的write方法將字符串“Hello World”輸出顯示在瀏覽器客戶區(qū)里。另一種常用的信息輸出方法是使用window對(duì)象的alert方法,以消息框的形式輸出信息。JavaScript程序嵌入HTML文檔的常用方式就是將代碼放在“<script>”標(biāo)簽對(duì)中,代碼如下所示。
01 <html> <!---------HTML文檔開始----- ---------------> 02 <head> <!---------文檔頭開始------- -------------------> 03 <title> <!---------標(biāo)題開始------- ----------------------> 04 </title> <!---------標(biāo)題結(jié)束--------- --------------------> 05 </head> <!---------文檔頭結(jié)束------- -------------------> 06 <body> <!---------文檔體開始------- -------------------> 07 <script language="JavaScript"> <!---------腳本程序------- ----------------------> 08 // JavaScript程序語句 // JavaScript程序語句 09 // …… // 更多的JavaScript程序語句 10 </script> <!---------腳本結(jié)束-------- ---------------------> 11 </body> <!---------文檔體結(jié)束------- -------------------> 12 </html> <!---------HTML文檔結(jié)束----- --------------->
另一種方式是將JavaScript代碼直接嵌入HTML標(biāo)簽中,代碼如下所示。
01 <html> <!---------HTML文檔開始----- ---------------> 02 <head> <!---------文檔頭開始------ --------------------> 03 <title> <!---------標(biāo)題開始------ -----------------------> 04 </title> <!---------標(biāo)題結(jié)束------ -----------------------> 05 </head> <!---------文檔頭結(jié)束------- -------------------> 06 <body> <!---------文檔體開始------- -------------------> 07 <input type="button" value="按鈕" onclick="alert('嵌入在HTML標(biāo)簽中的 JavaScript程序');"/> 08 </body> <!---------文檔體結(jié)束------- -------------------> 09 </html> <!---------HTML文檔結(jié)束----- --------------->
第三種方式是將JavaScript程序以外部文件的形式鏈接到當(dāng)前HTML文檔中,本書不使用這種方式,限于篇幅在此不作講解,讀者可以查閱相關(guān)資料。
提示:JavaScript使用形式靈活多樣,除上面所提到的常用方式以外的方法都屬于編程技巧范疇。
1.3.2 選擇JavaScript編輯器
JavaScript源程序是文本文件,因此可以使用任何文本編輯器來編寫程序源代碼,例如Windows操作系統(tǒng)里的“記事本”程序。為了更快速地編寫程序并且降低出錯(cuò)的幾率,通常會(huì)選擇一些專業(yè)的代碼編輯工具。專業(yè)的代碼編輯器有代碼提示和自動(dòng)完成功能,筆者推薦使用Aptana Studio,它是一款很不錯(cuò)的JavaScript代碼編輯器,其安裝初始界面如圖1-3所示。

圖1-3 開始安裝Aptana Studio
安裝完畢后運(yùn)行Aptana Studio,即可進(jìn)入程序的主界面,如圖1-4所示,使用Aptana Studio可以快速編寫JavaScript程序。如果使用的是Firefox瀏覽器,還可以在該軟件中調(diào)試JavaScript程序。

圖1-4 Aptana Studio主界面
注意:為了簡單起見,本書所有的例程都以IE瀏覽器作為標(biāo)準(zhǔn)。
1.3.3 編寫“Hello World”程序
下面正式開始編寫Hello World程序,推薦使用記事本或上一節(jié)介紹的Aptana IDE。為簡單起見,這里使用記事本編寫程序。
【范例1-1】編寫并運(yùn)行最經(jīng)典的入門程序,輸出“Hello World!”。打開記事本,輸入如示例代碼1-1所示的代碼并將文件另存為網(wǎng)頁文件“helloworld.htm”。
示例代碼1-1
01 <html> <!---------HTML文檔開始----------- ---------> 02 <body> <!---------文檔體開始------------ --------------> 03 <script language="JavaScript"> <!---------腳本程序------------ -----------------> 04 document.write("Hello World!"); // 輸出經(jīng)典的Hello World 05 </script> <!---------腳本結(jié)束----------- ------------------> 06 </body> <!---------文檔體結(jié)束------------ --------------> 07 </html> <!---------HTML文檔結(jié)束------------- ------->
【運(yùn)行結(jié)果】雙擊網(wǎng)頁文件運(yùn)行程序,其結(jié)果如圖1-5所示。

圖1-5 Hello World程序的運(yùn)行結(jié)果
【代碼解析】第4行是JavaScript程序代碼,第3、5行是標(biāo)準(zhǔn)HTML標(biāo)簽,該標(biāo)簽用于在HTML文檔中插入腳本程序。其中的“l(fā)anguage”屬性指明了“<script>”標(biāo)簽對(duì)間的代碼是JavaScript程序。第4行調(diào)用document對(duì)象的write方法將字符串“Hello World!”輸出到HTML文本流中。
提示:嵌入JavaScript腳本時(shí)也可以使用標(biāo)簽“<script type="text/JavaScript"></script>”。
1.3.4 瀏覽器對(duì)JavaScript的支持
在互聯(lián)網(wǎng)發(fā)展的過程中,幾大主要瀏覽器之間也存在激烈的競爭。JavaScript是Netscape公司的技術(shù),其他瀏覽器并不能和Navigator一樣良好地支持JavaScript,因?yàn)榈貌坏绞褂迷S可。微軟公司為能使其IE瀏覽器能搶占一定市場份額,于是在IE中實(shí)現(xiàn)了稱為JScript的腳本語言,其兼容JavaScript,但是和JavaScript間仍然存在版本差異。因此,編程人員在編碼時(shí)仍然須考慮不同瀏覽器間的差別。
為能使JavaScript腳本語言標(biāo)準(zhǔn)化,Netscape、微軟等公司和其他一些團(tuán)體打算建立一個(gè)語言標(biāo)準(zhǔn)。1997年發(fā)表了第一套腳本語言規(guī)范,即ECMA-262。新語言規(guī)范下的JavaScript命名為ECMAScript,因?yàn)椤癑avaScript”這名字也存在許可的問題。現(xiàn)在的瀏覽器都以ECMAScript為規(guī)范,這樣可以大大減少編程人員的負(fù)擔(dān),不過差別總還是存在的,因此編程時(shí)還得引起注意,現(xiàn)舉例如何查詢當(dāng)前正在使用的瀏覽器類型。
【范例1-2】檢測當(dāng)前瀏覽器的信息,輸出瀏覽器的名稱、版本號(hào)、發(fā)行代號(hào),如示例代碼1-2所示。
示例代碼1-2
01 <script language="JavaScript"> // 程序開始 02 document.write("名稱:" + navigator.appName+"<br>");// 瀏覽器名稱 03 document.write("版本號(hào):" + navigator.appVersion+"<br>"); // 瀏覽器版本號(hào) 04 document.write("發(fā)行代號(hào):"+navigator.appCodeName+"<br>"); // 瀏覽器的內(nèi)部發(fā)行代號(hào) 05 </script> // 程序結(jié)束
【運(yùn)行結(jié)果】在瀏覽器中打開網(wǎng)頁文件運(yùn)行程序,其結(jié)果如圖1-6所示。

圖1-6 瀏覽器信息
【代碼解析】該示例讀取navigator對(duì)象的相關(guān)屬性以取得當(dāng)前瀏覽器的信息。第2行讀取appName取得瀏覽器名稱,第3、4行分別取得版本號(hào)和發(fā)行代號(hào)。
提示:通過獲得瀏覽器的信息,才能對(duì)當(dāng)前頁面使用具有針對(duì)性的JavaScript程序代碼。
1.4 注意事項(xiàng)
JavaScript程序的書寫有些許需要注意的地方,如大小寫敏感、單行和多行、分號(hào)的運(yùn)用等。初學(xué)者在編寫程序時(shí)通常會(huì)觸犯這些規(guī)則,應(yīng)該盡力避免。用戶自定義的標(biāo)識(shí)符不能與語言保留的關(guān)鍵字同名,通過使用一些專業(yè)的編輯器可以幫助消除語法錯(cuò)誤。
1.4.1 大小寫敏感
JavaScript代碼是大小寫敏感的,Name和name是不同的標(biāo)識(shí)符,編碼時(shí)應(yīng)當(dāng)予以注意。同一個(gè)詞如果各個(gè)字母間大小寫不同,系統(tǒng)將當(dāng)做不同的標(biāo)識(shí)符來處理,相互之間沒有任何聯(lián)系。現(xiàn)舉例說明,代碼如下所示。
01 Name = "sunsir"; // 大寫字母開頭 02 name = "foxsir"; // 小寫字母開頭
此時(shí)Name的值仍然是“sunsir”,對(duì)name進(jìn)行操作并不影響到變量Name,它們是不同的變量,因?yàn)樵贘avaScript中所有的代碼都區(qū)分大小寫。
1.4.2 注意空格與換行
代碼中多余的空格會(huì)被忽略,同一個(gè)標(biāo)識(shí)符的所有字母必須連續(xù)。一行代碼可以分成多行書寫,例如以下代碼的書寫都正確。單行書寫如下:
if(1==1 && 6>3 ){alert("return true");}else{alert( "return false" );} // 代碼寫于一行中,用分號(hào)作為語句結(jié)束標(biāo)志分成多行、規(guī)范的書寫如下: 01 if( 1==1 && 6>3 ) // 如果1等于1,且6大于3,則 02 { 03 alert("return true" ); // 輸出“true” 04 } 05 else // 否則 06 { 07 alert( "return false" ); // 輸出“false” 08 }
也可以在代碼中的標(biāo)識(shí)符間任意添加空格,多余的空格會(huì)被忽略,例如以下代碼效果與上述代碼完全一樣。
01 if ( 1 // 一個(gè)語句分多行書寫 02 ==1 // 將一行代碼分成多行 03 && 6> 3 // 將一行代碼分成多行 04 ) // 將一行代碼分成多行 05 { alert( // 將一行代碼分成多行 06 "return true"); }else // 將一行代碼分成多行 07 { // 將一行代碼分成多行 08 alert( "return false" ); // 將一行代碼分成多行 09 } // 將一行代碼分成多行
雖然代碼可以分成任意多行去寫,但是對(duì)于字符串卻不一樣。要將一個(gè)字符串分成多行,須將每一行作為一個(gè)單獨(dú)的字符串,再使用“+”運(yùn)行符將位于不同行的字符串連接起來。代碼如下所示。
01 var Message = "JavaScript編程,簡單,有趣!"; // 單行中的字符串 02 var message = "JavaScript編程," + // 多行中的字符串 03 "簡單,有趣!";
提示:規(guī)范的書寫風(fēng)格,是編寫成熟代碼的基本要求,希望讀者引起注意。
1.4.3 分號(hào)可有可無
JavaScript程序可以使用分號(hào)作為一個(gè)語句的結(jié)束標(biāo)志,分號(hào)之后是新語句的開始。這樣可以將多個(gè)語句放在一行中,該特性在一些場合中非常有用,比如將JavaScript程序?qū)懺谝粋€(gè)字符串中以構(gòu)造函數(shù)對(duì)象。當(dāng)一行只有一個(gè)程序語句時(shí),結(jié)尾可以不使用分號(hào)。反之,當(dāng)不使用分號(hào)時(shí),一行被認(rèn)為是一個(gè)程序語句,代碼如下所示。
01 <script language="JavaScript"> // 腳本開始 02 var name = "Sunsir" // 名字 03 var age = 25 // 年齡 04 alert( "Sunsir's age:" + age ) // 輸出信息 05 </script> // 腳本結(jié)束
1.5 小結(jié)
本章向讀者介紹了JavaScript語言產(chǎn)生的背景、發(fā)展的過程及如何使用。現(xiàn)行的JavaScript是以ECMAScript為語言標(biāo)準(zhǔn)的,常見的瀏覽器基本上都實(shí)現(xiàn)了ECMA-262語言規(guī)范。對(duì)于不同瀏覽器間的一些微小的差別讀者仍需要注意,可以在程序中判斷當(dāng)前瀏覽器并編寫與之適應(yīng)的代碼。JavaScript程序以文本的形式嵌入或鏈接到HTML文檔中,其代碼標(biāo)識(shí)符大小寫敏感。一個(gè)程序語句可以分成多行書寫,可以使用分號(hào)作為一個(gè)語句的結(jié)束。如果讀者對(duì)本章內(nèi)容還有什么疑問,可以參考《JavaScript實(shí)例自學(xué)手冊(cè):通過486個(gè)例子掌握Web開發(fā)捷徑》(電子工業(yè)出版社,吳雪)和《完全手冊(cè):HTML+CSS+JavaScript實(shí)用詳解》(電子工業(yè)出版社,葉青)等書籍。
1.6 習(xí)題
一、常見面試題
1.簡述Java與JavaScript的區(qū)別。
【解析】本題考核應(yīng)聘者對(duì)于兩種語言的了解。其實(shí)JavaScript和Java沒有任何關(guān)系(除了名字)JavaScript的命名是為了沾Java的光,還仿照了一些Java的結(jié)構(gòu)語法。JavaScript是瀏覽器的腳本語言,Java是編寫應(yīng)用程序的高級(jí)語言。
2.什么是腳本語言。
【解析】本題主要考查的是對(duì)腳本語言和高級(jí)語言的認(rèn)識(shí)。腳本語言是一種應(yīng)用程序擴(kuò)展語言,用于系統(tǒng)的擴(kuò)展,使其按用戶的意愿去運(yùn)行。所有的基礎(chǔ)功能由系統(tǒng)提供,腳本語言在更高層次描述如何調(diào)用系統(tǒng)的接口。和其他編程語言不同,腳本語言通常不需要經(jīng)歷編譯和鏈接這些階段,大都直接解釋執(zhí)行。
二、簡答題
1.簡述JavaScript的發(fā)展史,以及它的未來。
2.簡述JavaScript語言的一些特點(diǎn)。
三、綜合練習(xí)
1.編寫程序,在瀏覽器中顯示用戶的名字。
【提示】對(duì)Hello World程序稍加修改即可實(shí)現(xiàn),差別只是輸出不同的字符串。參考代碼如下:
01 <script language="JavaScript"> // 腳本開始 02 name = "Sunsir"; // 名字 03 document.write( name ); // 在瀏覽器中輸出 04 </script> // 腳本結(jié)束
【運(yùn)行結(jié)果】打開網(wǎng)頁運(yùn)行程序,結(jié)果如圖1-7所示。

圖1-7 輸出字符串
2.檢測當(dāng)前運(yùn)行程序所用的瀏覽器,輸出瀏覽器的程序名。
【提示】模仿范例1-2,讀取navigator對(duì)象的appName屬性的值,所得數(shù)據(jù)即為瀏覽器的程序名,參考代碼如下:
01 <script language="JavaScript"> // 程序開始 02 document.write( navigator.appName ); // 在瀏覽器中輸出 03 </script> // 程序結(jié)果
【運(yùn)行結(jié)果】打開網(wǎng)頁運(yùn)行程序,結(jié)果如圖1-8所示。
警告:本書假定讀者具有基本的HTML語言知識(shí),HTML部分代碼除非必要否則將不多做解釋。

圖1-8 輸出瀏覽器名稱
四、編程題
1.寫一個(gè)簡單的“Hello World”程序并運(yùn)行。
【提示】可以參照1.3.3節(jié)進(jìn)行。
2.計(jì)算兩個(gè)數(shù)相加,并將結(jié)果輸出。
【提示】可以定義三個(gè)變量,兩個(gè)作為加數(shù),一個(gè)作為總數(shù)。
- Seven NoSQL Databases in a Week
- 樂高機(jī)器人EV3設(shè)計(jì)指南:創(chuàng)造者的搭建邏輯
- Effective DevOps with AWS
- JMAG電機(jī)電磁仿真分析與實(shí)例解析
- Photoshop CS3特效處理融會(huì)貫通
- PyTorch Deep Learning Hands-On
- 單片機(jī)技術(shù)一學(xué)就會(huì)
- Pentaho Analytics for MongoDB
- 工業(yè)自動(dòng)化技術(shù)實(shí)訓(xùn)指導(dǎo)
- 精通LabVIEW程序設(shè)計(jì)
- 智能鼠原理與制作(進(jìn)階篇)
- Excel 2007終極技巧金典
- TensorFlow Deep Learning Projects
- 玩轉(zhuǎn)PowerPoint
- 網(wǎng)頁配色萬用寶典