版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第4章JavaScript中的函數(shù)在編寫程序時,經(jīng)常需要重復(fù)使用某段程序代碼,如果每次都重新編寫,顯然比較麻煩。因此,從程序代碼的維護性和結(jié)構(gòu)性角度考慮,可以將經(jīng)常使用的程序代碼依照功能獨立出來,這就需要使用函數(shù)來定義,函數(shù)是完成特定任務(wù)的一段程序代碼。本章將詳細講解JavaScript中函數(shù)的定義和使用。函數(shù)的定義定義函數(shù)的語法格式為:function函數(shù)名(形式參數(shù)1,形式參數(shù)2,…,形式參數(shù)n){
語句組;}其中:function是定義函數(shù)的JavaScript保留關(guān)鍵字;函數(shù)名是用戶自己定義的,可以是任何有效的標識符,但通常要為函數(shù)賦予一個有意義的名稱;函數(shù)可以不帶參數(shù)或帶多個參數(shù),用于接收調(diào)用函數(shù)時傳遞的變量和值。通常把在定義函數(shù)時的參數(shù)稱為形式參數(shù),也可以簡稱為形參。形式參數(shù)必須用圓括號括起來放在函數(shù)名之后,圓括號不能省略,既使是不帶參數(shù)時,也要在函數(shù)名后加上括號。如果有多個形式參數(shù),形式參數(shù)之間用逗號分隔。函數(shù)的調(diào)用函數(shù)調(diào)用的方法非常簡單,只需要在調(diào)用處寫上函數(shù)名、圓括號以及要傳遞的參數(shù)值就可以了。函數(shù)調(diào)用的基本語法格式如下:函數(shù)名(實際參數(shù)1,實際參數(shù)2,…,實際參數(shù)n)其中:函數(shù)名要與定義函數(shù)時使用的名稱相同;實際參數(shù)是要傳遞給函數(shù)的變量或值,也可以簡稱為實參,其參數(shù)的類型、個數(shù)、以及先后次序要與定義函數(shù)時的形式參數(shù)相同,參數(shù)名可以不同。函數(shù)在執(zhí)行時,會按順序?qū)嶋H參數(shù)的值傳遞給形式參數(shù)。同定義函數(shù)時相同,函數(shù)名之后的圓括號是不能省略的,即使沒有參數(shù)也要帶圓括號。函數(shù)的參數(shù)如果在定義函數(shù)時聲明了形式參數(shù),調(diào)用函數(shù)時就應(yīng)該為這些參數(shù)提供實際的參數(shù)。在JavaScript中,有兩種參數(shù)傳遞方式:值傳遞和地址傳遞。當函數(shù)參數(shù)為直接量、基本類型變量時,JavaScript采用值傳遞的方式,即實參將變量的值傳給形參,當在函數(shù)內(nèi)對形參的值進行了修改時,并不影響實參的值。調(diào)用函數(shù)的實參應(yīng)該與定義函數(shù)時的形參相對應(yīng),如果出現(xiàn)參數(shù)不等時,JavaScript按如下原則進行處理:如果調(diào)用函數(shù)時實參的個數(shù)多于定義函數(shù)時形參的個數(shù),則忽略最后多余的參數(shù)。如果調(diào)用函數(shù)時實參的個數(shù)少于定義函數(shù)時形參的個數(shù),則將最后沒有接收傳遞值的參數(shù)的值賦為undefined。函數(shù)的返回值在函數(shù)中可以使用return語句使函數(shù)返回一個值。return語句的基本語法格式如下:return[表達式];其中,表達式的值即是要返回的值,表達式可以省略,省略表達式的return語句的返回值為undefined。程序在執(zhí)行函數(shù)的過程中,當遇到return語句時,就將不再執(zhí)行該語句后面的程序語句,而是將控制權(quán)轉(zhuǎn)交給調(diào)用函數(shù)的程序。如果函數(shù)中沒有return語句,那么JavaScript會隱含地在函數(shù)末尾添加一條返回undefined值的return語句。因此,可以說所有的函數(shù)都有返回值,只不過在沒有顯式使用return語句的函數(shù)中,系統(tǒng)缺省的添加一條返回undefined值的return語句。函數(shù)的嵌套函數(shù)嵌套定義的語法格式如下:functionfuncA(){//這里是函數(shù)funcA()的一條或多條語句,其中包括myfuncB()函數(shù)的定義function.funcB(){//這里是函數(shù)funcB()的一條或多條語句,可以使用funcA()函數(shù)中聲明的變量}}在這個結(jié)構(gòu)中,funcB稱作內(nèi)層函數(shù),funcA稱作外層函數(shù)。內(nèi)層函數(shù)可以使用外層函數(shù)中定義的變量,但外層函數(shù)不能使用內(nèi)層函數(shù)定義的變量。外層函數(shù)可以調(diào)用內(nèi)層函數(shù)。采用嵌套函數(shù)定義后,其他函數(shù)不能直接訪問內(nèi)層函數(shù),只能通過外層函數(shù)進行訪問,從而實現(xiàn)了信息的隱藏。函數(shù)的遞歸JavaScript除了支持在一個函數(shù)中調(diào)用其他函數(shù)之外,還支持在一個函數(shù)中直接調(diào)用該函數(shù)本身,或者幾個函數(shù)之間相互調(diào)用,這種調(diào)用稱為函數(shù)的遞歸調(diào)用。下面示例代碼是在函數(shù)f1()中直接調(diào)用函數(shù)自身的形式:functionf1(){
……f1();
……}函數(shù)的遞歸遞歸函數(shù)的另外一種形式是在幾個函數(shù)之間相互調(diào)用,從而形成隱含遞歸調(diào)用。例如,下面示例代碼是在函數(shù)f1()中調(diào)用f2()函數(shù),又在f2()函數(shù)中調(diào)用f1()函數(shù),從而形成遞歸。functionf1(){
……f2();
……}functionf2(){
……f1();
……}變量的作用域作用域通俗來講,就是變量在什么范圍起作用。在JavaScript中,根據(jù)變量的作用域可以把變量分為全局變量和局部變量。在函數(shù)外聲明的變量,其作用域為全局作用域,也就是說,該變量在HTML文檔中聲明后的任何程序段中都可以使用,這樣的變量稱為全局變量。在函數(shù)內(nèi)部聲明的變量,其作用域為局部作用域,也就是說,該變量只能在定義它的函數(shù)內(nèi)部使用,在這個函數(shù)外部,該變量沒有意義,這樣的變量稱為局部變量。JavaScript中的系統(tǒng)函數(shù)encodeURI函數(shù)decodeURI函數(shù)parseInt函數(shù)isNan函數(shù)eval函數(shù)encodeURI函數(shù)encodeURI()函數(shù)可把字符串作為URI進行編碼并返回,而URL是最常見的一種URI。該函數(shù)的語法定義如下:encodeURI(URIstring)其中參數(shù)URIstring是一個字符串,含有URI或其他要編碼的文本。該方法的目的是對URI進行完整的編碼,但不會對ASCII字母和數(shù)字進行編碼,也不會對在URI中具有特殊含義的ASCII標點符號進行編碼。decodeURI函數(shù)decodeURI()函數(shù)可對encodeURI()函數(shù)編碼過的URI進行解碼。該函數(shù)的語法定義如下:decodeURI(URIstring)其中參數(shù)URIstring是一個字符串,含有要解碼的URI或其他要解碼的文本。parseInt函數(shù)parseInt()函數(shù)用來將一個字符串按照指定的進制轉(zhuǎn)換為一個整數(shù),其語法格式為:parseInt(numString,[radix])其中,第一個參數(shù)是要進行轉(zhuǎn)換的字符串,第二個參數(shù)是介于2到36之間的數(shù)值,用于指定進行字符串轉(zhuǎn)換時所用的進制。如果省略該參數(shù)或其值為0,則字符串將以十進制來進行轉(zhuǎn)換。如果它以“0x”或“0X”開頭,將以十六進制來進行轉(zhuǎn)換。isNan函數(shù)isNaN()函數(shù)用于檢查其參數(shù)是否是非數(shù)字值。其語法格式為:isNaN(x)其中參數(shù)x,就是要檢測的值。如果x是特殊的非數(shù)字值NaN(或者能被轉(zhuǎn)換為這樣的值),返回的值就是true。如果x是其他值,則返回false。eval函數(shù)eval()函數(shù)可以將某個參數(shù)字符串解析為一段JavaScript
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨國離婚協(xié)議書范本
- 2024年WPS施工合同標準版
- 2024年變壓器安裝工程結(jié)算合同
- 賽事組織總編導(dǎo)合同
- 2024年公司物業(yè)股權(quán)交易合同
- (2024版)商場咖啡廳租賃合同
- 2024年加工承攬合同標的及加工要求
- 節(jié)制閘施工方案評估與總結(jié)
- 2024年升級版:商業(yè)門面租賃合同
- 2024年出境游合同指南針
- YD_T 3956-2021 電信網(wǎng)和互聯(lián)網(wǎng)數(shù)據(jù)安全評估規(guī)范_(高清版)
- 杭州會展業(yè)發(fā)展與對策研究文獻綜述
- 完整版方法驗證報告模板最終
- 2022年物業(yè)管理師《物業(yè)管理實務(wù)》考試題庫大全-下(多選題、簡答)
- 大班科學(xué)活動教案《豆豆家族》含PPT課件
- 壓力管道檢驗員在線考試習題與答案
- 【精品試卷】部編人教版(統(tǒng)編)一年級上冊語文第一單元測試卷含答案
- 金屬有機化學(xué)ppt課件
- 應(yīng)急管理試題庫
- 工地觀摩學(xué)習心得體會三篇
- 當當網(wǎng)與電子商務(wù)47條標準
評論
0/150
提交評論