新聞中心
JavaScript 語(yǔ)言正越來(lái)越受歡迎,可以說(shuō)是是互聯(lián)網(wǎng)上最突出的語(yǔ)言之一。你可以跨平臺(tái)和瀏覽器使用它,其并不排斥后端語(yǔ)言?,F(xiàn)在有許多不同的開(kāi)發(fā)庫(kù)——有些非常棒—— 這些庫(kù)對(duì)開(kāi)發(fā)很有幫助,比如說(shuō)加快了開(kāi)發(fā)的時(shí)間等等。問(wèn)題是,有時(shí)候這些庫(kù)與原始語(yǔ)言之間很是有一些距離,這使得剛?cè)腴T(mén)的開(kāi)發(fā)者缺乏一種對(duì)語(yǔ)言的基礎(chǔ)了解。

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),全南企業(yè)網(wǎng)站建設(shè),全南品牌網(wǎng)站建設(shè),網(wǎng)站定制,全南網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,全南網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
本文通過(guò)全面列舉基礎(chǔ)的JavaScript概念這一方式來(lái)闡述該語(yǔ)言的基本原理,以此來(lái)為初學(xué)者提供一個(gè)對(duì)語(yǔ)言的基本了解,隨處可見(jiàn)的代碼例子則是用來(lái)說(shuō)明所有的這些概念是如何在語(yǔ)言中體現(xiàn)出來(lái)的。
了解JavaScript語(yǔ)言
JavaScript語(yǔ)言是一種免費(fèi)的客戶端腳本語(yǔ)言,其能夠讓你往超文本標(biāo)記語(yǔ)言(Hypertext Markup Language,HTML)頁(yè)面中加入交互行為。客戶端(client-side)意味著JavaScript運(yùn)行在瀏覽器中,而不是用在服務(wù)器端。在網(wǎng)頁(yè)被服務(wù)器送達(dá)并被瀏覽器加載后,客戶端腳本就允許用戶與網(wǎng)頁(yè)進(jìn)行交互。例如,Google Maps就是使用JavaScript語(yǔ)言來(lái)支持用戶與地圖之間的交互的,交互的方式有移動(dòng)地圖、放大和縮小等。沒(méi)有JavaScript語(yǔ)言的話,網(wǎng)頁(yè)需要為每次和每個(gè)用戶的交互行為進(jìn)行刷新,當(dāng)然,除非頁(yè)面用到了諸如Adobe Flash或是Microsoft? Silverlight一類的插件。JavaScript語(yǔ)言不需要插件。
因?yàn)镴avaScript語(yǔ)言為加載后的網(wǎng)頁(yè)提供用戶交互行為,因此開(kāi)發(fā)者通常會(huì)用它來(lái)實(shí)現(xiàn)下面的一些功能:
1. 動(dòng)態(tài)添加、編輯和刪除HTML元素及它們的值。
2. 在提交之前校驗(yàn)表單。
3. 在用戶的計(jì)算機(jī)上創(chuàng)建cookies以用于在將來(lái)的訪問(wèn)中保存和檢索數(shù)據(jù)。
在開(kāi)始之前,只要知道語(yǔ)言的幾個(gè)基本原則就行了:
1. 要在HTML文件中把JavaScript代碼包含進(jìn)來(lái)的話,你必須要把代碼放在腳本標(biāo)簽(script)的內(nèi)部,并加入text/javascript這一類型(type)屬性(清單1)。
2. 所有的JavaScript語(yǔ)句以分號(hào)結(jié)束。
3. 語(yǔ)言是大小寫(xiě)敏感的。
4. 所有的變量名都必須以字母或是下劃線作為開(kāi)始。
5. 你可以使用注釋來(lái)說(shuō)明腳本中的某些行,注釋的編寫(xiě)方式是,以一個(gè)雙斜線(//)為開(kāi)始,后面跟著注釋。
6. 你還可以使用注釋來(lái)把腳本注釋掉。要注釋腳本的多行的話,一種好的做法是使用/* 你的腳本在這里 */。任何位于星號(hào)之內(nèi)的腳本在執(zhí)行過(guò)程中都不會(huì)運(yùn)行。
清單1.需要使用script標(biāo)簽和type屬性來(lái)把JavaScript代碼包含到HTML文件中來(lái)
要隱藏瀏覽器不支持的JavaScript的代碼,或是用戶想把代碼關(guān)掉的話,只要在JavaScrip語(yǔ)句的前后使用注釋標(biāo)簽就可以了(清單2)。
清單2. 使用注釋來(lái)隱藏瀏覽器不支持的JavaScript代碼
最常用的把JavaScript代碼包含到網(wǎng)頁(yè)中的方式是,使用腳本(script)標(biāo)簽中的src屬性來(lái)把代碼從一個(gè)外部的JavaScript文件中加載進(jìn)來(lái)(清單3)。
清單3. 在HTML文件中包含外部的JavaScript文件
外部JavaScript文件是最常見(jiàn)的包含JavaScript代碼的方式,這是有一些很實(shí)在的原因的:
1. 如果你的HTML頁(yè)面中有著更少的代碼的話,搜索引擎就能夠以更快的速度來(lái)抓取和索引你的網(wǎng)站。
2. 保持JavaScript代碼和HTML的分離,這樣代碼顯得更清晰,且最終更易于管理。
3. 因?yàn)榭梢栽贖TML代碼中包含進(jìn)多個(gè)JavaScript文件,因此你可以把JavaScript文件分開(kāi)放在web服務(wù)器上不同的文件目錄結(jié)構(gòu)中,這類似于圖像的存放方式,這是一種更容易管理代碼的做法。清晰、有條理的代碼始終是讓網(wǎng)站管理變得容易起來(lái)的關(guān)鍵。
變量
變量存儲(chǔ)數(shù)據(jù),這些數(shù)據(jù)稍后要被檢索的或是要使用新的數(shù)據(jù)來(lái)更新。存儲(chǔ)在變量中的數(shù)據(jù)可以是一個(gè)值或表達(dá)式,JavaScript語(yǔ)言有三種類型的表達(dá)式,表1對(duì)此做了描述。
表1. JavaScript表達(dá)式
表達(dá)式 描述
算術(shù) 計(jì)算的結(jié)果為一個(gè)數(shù)值
字符串 計(jì)算的結(jié)果為一個(gè)字符串
邏輯 計(jì)算的結(jié)果為一個(gè)布爾值(true或者false)
變量有兩種類型:局部的和全局的。局部變量使用var這一關(guān)鍵字來(lái)聲明,聲明全局變量則不需要使用var關(guān)鍵字。使用了var關(guān)鍵字的變量被看成是 局部的,因?yàn)槌四懵暶魉牡胤剿幍姆秶猓荒茉谄渌魏蔚胤奖辉L問(wèn)。例如,如果你在一個(gè)函數(shù)(在將近文章的結(jié)尾部分我會(huì)談?wù)摰?的內(nèi)部聲明了一個(gè)局部變量的話,該變量就不能在該函數(shù)之外被訪問(wèn),這就使得它是這一函數(shù)局部的。如果你沒(méi)有使用var關(guān)鍵字聲明這同一變量的話,它在整個(gè)腳本中就都是可被訪問(wèn)到的,而不僅限定于只能在那個(gè)函數(shù)中被訪問(wèn)。
清單4給出了一個(gè)局部變量的例子,其被命名為num,并被賦值為10。
清單4. 聲明一個(gè)局部變量
- var num = 10;
要在腳本中的另一個(gè)位置訪問(wèn)num變量的值的話,你只需要通過(guò)名稱來(lái)引用該變量就可以了,如清單5所示。
清單5. 訪問(wèn)變量的值
- document.write("The value of num is: "+ num);
這一語(yǔ)句的結(jié)果是“The value of num is: 10”。這一document.write函數(shù)把數(shù)據(jù)寫(xiě)到網(wǎng)頁(yè)中,在本文余下的部分中你都是使用這一函數(shù)來(lái)把例子寫(xiě)到網(wǎng)頁(yè)中。
要把算術(shù)表達(dá)式存儲(chǔ)到變量中的話,你只要把變量指配給計(jì)算的值就可以了,如清單6所示。計(jì)算的結(jié)果而非算式本身被存儲(chǔ)在變量中。因此,我們又一次得到這一結(jié)果“The value of num is: 10”。
清單6. 存儲(chǔ)算術(shù)表達(dá)式
- var num = (5 + 5);
- document.write("The value of num is: "+ num);
要改變變量的值的話,通過(guò)你為變量所分配的名稱來(lái)引用變量,并使用等號(hào)來(lái)為其賦一個(gè)新的值(清單7)。這次的不同之處在于你不需要使用var關(guān)鍵字,因?yàn)樽兞恳呀?jīng)聲明過(guò)了。
清單7. 改變現(xiàn)有變量的值
- var num = 10;
- document.write("The value of num is: "+ num);
- // 把num的值更新成15
- num = 15;
- document.write("The new value of num is: "+ num);
這一腳本的結(jié)果先是一句“The value of num is: 10”,后面跟著“The new value of num is: 15”。除了講解變量之外,這一節(jié)內(nèi)容還引入了下一個(gè)主題,也就是運(yùn)算符。你用來(lái)把值賦給變量的等號(hào)(=)就是一個(gè)賦值運(yùn)算符,以及你用在5+5中的加號(hào)(+)是一個(gè)算術(shù)運(yùn)算符。下一節(jié)內(nèi)容談?wù)揓avaScript語(yǔ)言中的所有變量運(yùn)算符及其用法。
運(yùn)算符
在執(zhí)行JavaScript語(yǔ)言中的任何運(yùn)算時(shí),你都需要運(yùn)算符。運(yùn)算包括了加法、減法、比較等。JavaScript語(yǔ)言中有四種運(yùn)算符。
1. 算術(shù)
2. 賦值
3. 比較
4. 邏輯
算術(shù)運(yùn)算符
算術(shù)運(yùn)算符執(zhí)行基本的數(shù)學(xué)運(yùn)算,比如說(shuō)加減乘除等。表2列出并描述了JavaScript語(yǔ)言中的所有可用的算術(shù)運(yùn)算。
表2. 算術(shù)運(yùn)算符
運(yùn)算符 描述
+ 加法
- 減法
* 乘法
/ 除法
% 取模(找出余數(shù))
++ 遞增
-- 遞減
#p#
賦值運(yùn)算符
算術(shù)運(yùn)算符執(zhí)行基本的數(shù)學(xué)運(yùn)算,而賦值運(yùn)算符則是把值賦給JavaScript變量。當(dāng)你在前面一節(jié)中把值賦給變量時(shí),你已經(jīng)見(jiàn)到了最常用的賦值運(yùn)算符。表3列出并描述了JavaScript語(yǔ)言中所有可用的賦值運(yùn)算符。
表3. 賦值運(yùn)算符
運(yùn)算符 描述
= 等于
+= 把加法值(變量加上值的結(jié)果值)賦給變量
-= 把減法值(變量減去值的結(jié)果值)賦給變量
*= 把乘法值(變量乘上值的結(jié)果值)賦給變量
/= 把除法值(變量除以值的結(jié)果值)賦給變量
%= 把取模值(變量對(duì)值取模的結(jié)果)賦給變量
你已經(jīng)看到了如何使用等號(hào)來(lái)把值或是表達(dá)式賦給變量,但現(xiàn)在我會(huì)給展示如何使用一個(gè)令人稍加困惑的賦值運(yùn)算符。把一個(gè)加法值賦給一個(gè)變量可能是一個(gè)很奇怪的概念,但實(shí)際上很簡(jiǎn)單(清單8)。
清單8. 把一個(gè)加法值賦給一個(gè)變量
- var num = 10;
- document.write("The value of num is: "+ num);
- // 把num的值更新為15
- num += 5;
- document.write("The new value of num is: "+ num);
這一腳本的結(jié)果是“The value of num is: 10”后面跟著“"The new value of num is: 15”。你可以看到,這一腳本中的運(yùn)算符把加法值賦給了變量。這也可以當(dāng)作是清單9中所編寫(xiě)的腳本的一種簡(jiǎn)短寫(xiě)法。
清單9. 把加法值賦給變量的一種更長(zhǎng)的寫(xiě)法。
- var num = 10;
- document.write("The value of num is: "+ num);
- // 把num的值更新為15
- num = (num + 5);
- document.write("The new value of num is: "+ num);
比較運(yùn)算符
比較運(yùn)算符確定變量或是它們的值之間的關(guān)系。你在條件語(yǔ)句中使用比較運(yùn)算符,通過(guò)比較變量或是它們的值來(lái)計(jì)算出語(yǔ)句為true還是為false,以此創(chuàng)建邏輯。表4列出并描述了JavaScrpit語(yǔ)言中所有可用的比較運(yùn)算符。
表4. 比較運(yùn)算符
運(yùn)算符 描述
== 等于
=== 全等,用于值和對(duì)象類型
!= 不等于
> 大于
< 小于
>= 大于或等于
<= 小于或等于
在編寫(xiě)任何類型的邏輯時(shí),變量和值的比較都是最基本的。清單10中的例子展示了如何使用等于這一比較運(yùn)算符(==)來(lái)確定10是否等于1。
清單10. 使用比較運(yùn)算符
- document.write(10 == 1);
邏輯運(yùn)算符
邏輯運(yùn)算符通常是用來(lái)組合條件語(yǔ)句中的比較運(yùn)算符。表5列出并描述了JavaScript語(yǔ)言中的所有可用的邏輯運(yùn)算符。
表5. 邏輯運(yùn)算符
運(yùn)算符 描述
&& 與
|| 或
! 非
現(xiàn)在在變量和運(yùn)算符方面你已經(jīng)有些經(jīng)驗(yàn)了,是時(shí)候了解如何創(chuàng)建一種比簡(jiǎn)單的變量有著更多存儲(chǔ)內(nèi)容的機(jī)制了。
數(shù)組
數(shù)組類似于變量,但不同之處在于它們可以把多個(gè)值和表達(dá)式放在一個(gè)名稱之下。把多個(gè)值存放在一個(gè)變量中,這種做法造就了數(shù)組的強(qiáng)大。你可存放在 JavaScript數(shù)組中的數(shù)據(jù)的類型和數(shù)量都沒(méi)有限制,在腳本中聲明數(shù)組之后,你就可以隨時(shí)訪問(wèn)數(shù)組中的任何項(xiàng)的任何數(shù)據(jù)。雖然數(shù)組可以保存 JavaScript語(yǔ)言的任何數(shù)據(jù)類型,包括其他數(shù)組,但最常見(jiàn)的做法是,把相類似的數(shù)據(jù)存儲(chǔ)在同一個(gè)數(shù)組中,并給它指定一個(gè)與數(shù)組項(xiàng)有關(guān)聯(lián)意思的名稱。清單11提供的例子使用了兩個(gè)獨(dú)立的數(shù)組來(lái)各自存放相類似的數(shù)據(jù)。
清單11. 把相類似的值存放在數(shù)組中
- var colors = new Array("orange", "blue", "red", "brown");
- var shapes = new Array("circle", "square", "triangle", "pentagon");
正如你見(jiàn)到的那樣,是可以把所有的這些數(shù)據(jù)項(xiàng)都保存在一個(gè)數(shù)組中,但這是不符合邏輯的,且有可能會(huì)在以后給腳本帶來(lái)問(wèn)題,比如說(shuō)在識(shí)別數(shù)組中存放的是什么數(shù)據(jù)時(shí)。
訪問(wèn)數(shù)組中的值很容易,但這里有一個(gè)陷阱存在。數(shù)組的ID總是從0而不是從1開(kāi)始的,在***次使用的時(shí)候你可能會(huì)有些困惑。ID從0開(kāi)始遞增,例如0、1、2、3等。要訪問(wèn)數(shù)組項(xiàng)的話你就必須要使用它的ID,其指向子項(xiàng)在數(shù)組中的位置(清單12)。
清單12. 把相類似的值保存在一個(gè)數(shù)組中
- var colors = new Array("orange", "blue", "red", "brown");
- document.write("Orange: "+ colors[0]);
- document.write("Blue: "+ colors[1]);
- document.write("Red: "+ colors[2]);
- document.write("Brown: "+ colors[3]);
也可以給數(shù)組中的某個(gè)位置賦值,或是更新數(shù)組中的某項(xiàng)的值,就像前面訪問(wèn)數(shù)組中的項(xiàng)的做法一樣(清單13)。
清單13. 給數(shù)組中的特定位置賦值
- var colors = new Array();
- colors[0] = "orange";
- colors[1] = "blue";
- colors[2] = "red";
- colors[3] = "brown";
- document.write("Blue: "+ colors[1]);
- // 把blue更新成purple
- colors[1] = "purple";
- document.write("Purple: "+ colors[1]);
現(xiàn)在你已經(jīng)很好地了解了變量、運(yùn)算符和數(shù)組,接下來(lái)把你所學(xué)的東西運(yùn)用到實(shí)踐中,開(kāi)始創(chuàng)建一些邏輯。
條件語(yǔ)句
條件語(yǔ)句是創(chuàng)建腳本語(yǔ)言或是編程語(yǔ)言中各種類型的邏輯的骨架,JavaScript語(yǔ)言也不例外。條件語(yǔ)句基于你所寫(xiě)的條件來(lái)確定要采取的行為,JavaScript語(yǔ)言有四種編寫(xiě)條件語(yǔ)句的方式,表6對(duì)此做了描述。
表6. 條件語(yǔ)句
語(yǔ)句 描述
if 如果某個(gè)特定條件為true的話就執(zhí)行腳本
if...else 如果某個(gè)特定條件為true的話就執(zhí)行某個(gè)腳本,
如果條件為false的話則執(zhí)行令一個(gè)腳本
if...else if...else 如果不限個(gè)數(shù)的多個(gè)條件中之一為true的話就執(zhí)行某個(gè)腳本,
如果所有的條件都為false的話 就執(zhí)行其他的腳本
switch 執(zhí)行許多腳本中的一個(gè)
如果你只想在某個(gè)條件為true時(shí)執(zhí)行某個(gè)腳本的話,就使用if語(yǔ)句。清單14展示了如何使用帶有比較運(yùn)算符的if語(yǔ)句來(lái)在條件為true時(shí)執(zhí)行腳本。
清單14. 使用if語(yǔ)句
- var num = 10;
- if(num == 5)
- {
- document.write("num is equal to 5");
- }
如果你打算在某個(gè)條件為true時(shí)執(zhí)行一個(gè)腳本,而在條件為false時(shí)執(zhí)行另一個(gè)腳本話,那么使用if...else語(yǔ)句,如清單15所示。
清單15. 使用if...else語(yǔ)句
- var num = 10;
- if(num == 5)
- {
- document.write("num is equal to 5");
- }
- else
- {
- document.write("num is NOT equal to 5, num is: "+ num);
- }
如果要基于不同的條件來(lái)執(zhí)行不同的腳本的話,則使用if...else if...else語(yǔ)句,如清單16所示。
清單16. 使用if...else if...else語(yǔ)句
- var num = 10;
- if(num == 5)
- {
- document.write("num is equal to 5");
- }
- else if(num == 10)
- {
- document.write("num is equal to 10");
- }
- else
- {
- document.write("num is: "+ num);
- }
Swith語(yǔ)句不同于if語(yǔ)句,它們不能用來(lái)確定變量值是否大于或是小于另一個(gè)值。清單17給出的例子說(shuō)明了使用switch語(yǔ)句來(lái)確定要執(zhí)行的腳本的適當(dāng)時(shí)機(jī)。
清單17. 使用switch語(yǔ)句
- var num = 10;
- switch(num)
- {
- case 5:
- document.write("num is equal to 5");
- break;
- case 10:
- document.write("num is equal to 10");
- break;
- default:
- document.write("num is: "+ num);
- }
你可能已經(jīng)注意到清單17用到了case子句、break語(yǔ)句和default子句。這些子句和語(yǔ)句對(duì)switch語(yǔ)句來(lái)說(shuō)都是很重要的部分。case子句確定了switch的值是否與子句中用到的數(shù)據(jù)值相等;break語(yǔ)句中斷——或是停止——switch語(yǔ)句執(zhí)行語(yǔ)句的余下部分;而default子句則標(biāo)明了在沒(méi)有case語(yǔ)句執(zhí)行的情況下或是已執(zhí)行的case語(yǔ)句沒(méi)有break語(yǔ)句的情況下,缺省要運(yùn)行的腳本。例如,清單18說(shuō)明了在已執(zhí)行的case語(yǔ)句中如果沒(méi)有break語(yǔ)句的話,多個(gè)case語(yǔ)句和default語(yǔ)句是如何執(zhí)行的。
清單18. 通過(guò)不包含break的方式來(lái)執(zhí)行多行代碼
- var num = 10;
- switch(num)
- {
- case 5:
- document.write("num is equal to 5");
- break;
- case 10:
- document.write("num is equal to 10");
- default:
- document.write("num is: "+ num);
- }
這一腳本的結(jié)果先是一句“num is equal to 10”,后面再跟著一句“num is: 10”。這種情況有時(shí)被稱為switch直落。
正如本節(jié)開(kāi)頭提到的那樣,條件語(yǔ)句是任何腳本語(yǔ)言或是編程語(yǔ)言中的所有邏輯的骨架,不過(guò)如果不用函數(shù)的話,你得到的代碼就會(huì)像糾纏不清的一團(tuán)亂麻。
#p#
函數(shù)
有許多理由可用來(lái)證明函數(shù)是很有用的。函數(shù)是那些只能由事件或是函數(shù)調(diào)用來(lái)執(zhí)行的腳本的容器,因此,在瀏覽器最初加載和執(zhí)行包含在網(wǎng)頁(yè)中的腳本的時(shí)候,函數(shù)并沒(méi)有被執(zhí)行。函數(shù)的目的是包含那些要完成某個(gè)任務(wù)的腳本,這樣你就隨時(shí)都能夠執(zhí)行該腳本和運(yùn)行該任務(wù)。
構(gòu)建一個(gè)函數(shù)很容易,其以function這一關(guān)鍵字作為開(kāi)始,接著是一個(gè)空格,然后是函數(shù)的名稱。你可以選擇任何的字串來(lái)作為函數(shù)的名稱,不過(guò)讓函數(shù)的名稱和其要執(zhí)行任務(wù)之間有某種關(guān)聯(lián)意思是很重要的。清單19給出了一個(gè)函數(shù)例子,該函數(shù)修改一個(gè)現(xiàn)有變量的值。
清單19. 構(gòu)建一個(gè)簡(jiǎn)單的函數(shù)
- var num = 10;
- function changeVariableValue()
- {
- num = 11;
- }
- changeVariableValue();
- document.write("num is: "+ num);
清單19中的例子不僅說(shuō)明了如何構(gòu)建一個(gè)函數(shù),還說(shuō)明了如何調(diào)用函數(shù)來(lái)修改變量的值。在這一例子中你能夠修改變量的值是因?yàn)?,變量是在主腳本范圍里做聲明的,函數(shù)也是一樣,因此函數(shù)知道變量的存在。然而,如果變量是在函數(shù)的內(nèi)部做聲明的話,那么在函數(shù)的外部你是不能訪問(wèn)該變量的。
函數(shù)還能夠通過(guò)函數(shù)的參數(shù)來(lái)接受數(shù)據(jù),函數(shù)可以有一個(gè)或多個(gè)形式參數(shù),函數(shù)調(diào)用基于函數(shù)的形式參數(shù)個(gè)數(shù)可以有一個(gè)或多個(gè)實(shí)際參數(shù)。形式參數(shù)(形參,parameter)和實(shí)際參數(shù)(實(shí)參,argument)常會(huì)被弄混;形參是函數(shù)定義的組成部分,而實(shí)參則是在調(diào)用函數(shù)時(shí)用到的表達(dá)式。清單20給出了一個(gè)函數(shù)例子,該函數(shù)帶有形參,函數(shù)調(diào)用則用到了實(shí)參。
清單20. 使用函數(shù)參數(shù)
- var num = 10;
- function increase(_num)
- {
- _num++;
- }
- increase(num);
- document.write("num is: "+ num);
這一例子中的函數(shù)遞增了任何傳遞給它的實(shí)際參數(shù)的值,該例中的實(shí)際參數(shù)是一個(gè)你已預(yù)先聲明了的變量。通過(guò)把它作為一個(gè)實(shí)際參數(shù)傳遞給函數(shù),你把它的值遞增成了11。
return語(yǔ)句在函數(shù)中也是常被用到的,它們?cè)趫?zhí)行完函數(shù)中的腳本后返回一個(gè)值。例如,你可以把函數(shù)返回的值賦給一個(gè)變量。清單21中的例子說(shuō)明了在執(zhí)行腳本之后,如何從函數(shù)中返回一個(gè)值。
清單21. 在函數(shù)中使用return語(yǔ)句
- function add(_num1, _num2)
- {
- return _num1+_num2;
- }
- var num = add(10, 10);
- document.write("num is: "+ num);
這一腳本的結(jié)果是“num is: 20”。這一函數(shù)的好處是,它可以把你傳遞給它的任意兩個(gè)數(shù)字相加并返回相加后的值,你可以把該值賦給任何變量,而不是像清單20那樣總是改變同一個(gè)變量的值。
循環(huán)
正如你已經(jīng)見(jiàn)到的那樣,數(shù)組是存儲(chǔ)大量可重用數(shù)據(jù)的一種很棒的方式。但這不過(guò)是一個(gè)開(kāi)始;for和while循環(huán)提供了遍歷這些數(shù)組、訪問(wèn)它們的值和使用它們來(lái)執(zhí)行腳本的功能。
JavaScript語(yǔ)言中最常用到的循環(huán)類型是for循環(huán)。for循環(huán)通常是這樣構(gòu)成的,先是一個(gè)賦了數(shù)值的變量,然后該變量使用一個(gè)比較運(yùn)算符來(lái)和另一個(gè)值做比較,***該數(shù)字值被遞增或是遞減。for循環(huán)中的比較通常是確定初始變量的數(shù)值是否小于或是大于另一個(gè)數(shù)值,接著在條件為true的這段時(shí)間內(nèi),循環(huán)運(yùn)行,變量遞增或是遞減直到條件的計(jì)算結(jié)果為false。清單22給出的例子說(shuō)明了如何編寫(xiě)一個(gè)for循環(huán),當(dāng)數(shù)值小于數(shù)組的長(zhǎng)度時(shí)循環(huán)運(yùn)行。
清單22. 構(gòu)建一個(gè)for循環(huán)并遍歷一個(gè)數(shù)組
- var colors = new Array("orange", "blue", "red", "brown");
- for(var i=0; i
- {
- document.write("The color is: "+ colors[i] +"
- ");
- }
數(shù)組的length屬性提供了一個(gè)與數(shù)組中的子項(xiàng)個(gè)數(shù)相等的數(shù)值,再一次說(shuō)明,這里容易讓你出錯(cuò)的一點(diǎn)是,數(shù)組的ID是從0開(kāi)始的,因此,如果數(shù)組中有4個(gè)子項(xiàng)的話,長(zhǎng)度就是4,但數(shù)組中的索引則是0、1、2和3——沒(méi)有4。
另一種循環(huán)類型是while循環(huán),它們的執(zhí)行速度比f(wàn)or循環(huán)快,但適用在一些不是遍歷數(shù)組的情況中,比如說(shuō)當(dāng)某個(gè)條件為true時(shí)執(zhí)行某個(gè)腳本。清單23展示了如何編寫(xiě)這樣的一個(gè)while循環(huán),即當(dāng)數(shù)值變量小于10時(shí)執(zhí)行某個(gè)腳本。
清單23. 構(gòu)建while循環(huán)
- var i = 0;
- while(i<10)
- {
- document.write(i +"
- ");
- i++;
- }
可以注意到,while循環(huán)中的腳本包含了一行代碼,該行代碼疊加數(shù)值變量直到while循環(huán)中的條件為false為止。沒(méi)有這行代碼的話,你得到的就是一個(gè)無(wú)限循環(huán)。
結(jié)論
JavaScript語(yǔ)言可以說(shuō)是***的語(yǔ)言之一,現(xiàn)在你明白這是為什么了。這一簡(jiǎn)單而又豐富的腳本語(yǔ)言帶來(lái)了如此之多的可能性,它提供的工具允許網(wǎng)站訪問(wèn)者和下載后的網(wǎng)頁(yè)進(jìn)行交互,這一功能非常的強(qiáng)大。本文為理解JavaScript語(yǔ)言的基本原理奠定了基礎(chǔ),現(xiàn)在對(duì)你來(lái)說(shuō),要了解JavaScript庫(kù)函數(shù)的作用方式,以及如何使用它們來(lái)簡(jiǎn)化網(wǎng)頁(yè)客戶端邏輯的編寫(xiě)過(guò)程都應(yīng)該是更容易的事了。接下來(lái)要做到事情就是把這些概念付諸實(shí)踐,并開(kāi)始探索JavaScript對(duì)象。
原文:http://article.yeeyan.org/view/213582/210738
當(dāng)前名稱:JavaScript入門(mén)之語(yǔ)言基礎(chǔ)
新聞來(lái)源:http://www.5511xx.com/article/cophdjj.html


咨詢
建站咨詢
