更新時(shí)間:2020-04-08 來(lái)源:黑馬程序員 瀏覽量:
什么是函數(shù)?
把一段相對(duì)獨(dú)立的具有特定功能的代碼塊封裝起來(lái),形成一個(gè)獨(dú)立實(shí)體,就是函數(shù),起個(gè)名字(函數(shù)名),在后續(xù)開(kāi)發(fā)中可以反復(fù)調(diào)用。函數(shù)的作用就是封裝一段代碼,將來(lái)可以重復(fù)使用。推薦了解黑馬程序員web前端課程。
為什么要使用函數(shù)?為了解決代碼的重用!減少代碼量。
函數(shù)的分類
系統(tǒng)內(nèi)置函數(shù) 和 程序員自定義函數(shù)
定義函數(shù)
function 函數(shù)名([參數(shù)列表]){
函數(shù)體
}
結(jié)構(gòu)說(shuō)明:
·function它是定義函數(shù)的關(guān)鍵字 不可以省略。
·函數(shù)名它的命名規(guī)則與變量名是一樣的
(1)可以使用大小寫英文字母、下劃線(_)、美元符號(hào)($)、數(shù)字組成
(2)不能使用數(shù)字開(kāi)頭
(3)不能使用JS中的關(guān)鍵字和保留字作為函數(shù)名
(4)如果函數(shù)是由多個(gè)單詞組成的,那么可以使用下劃線連接法和駝峰法
(5)嚴(yán)格區(qū)分大小寫
·函數(shù)名后面緊跟著一對(duì)小括號(hào) 這一對(duì)小括號(hào)不能省略
·小括號(hào)里面可能有參數(shù),我們將其稱之為形參
·小括號(hào)后面緊跟著一對(duì)大括號(hào) 這一對(duì)大括號(hào)不能省略
·大括號(hào)里面是函數(shù)體
注意:函數(shù)定義了一定要調(diào)用函數(shù)
調(diào)用函數(shù)
格式:
函數(shù)名([實(shí)參列表])
注意:在定義函數(shù)時(shí)如果有形參 反過(guò)來(lái)說(shuō) 在調(diào)用的時(shí)候也要有實(shí)參 但是這個(gè)不是絕對(duì)的!
同名函數(shù)后面的會(huì)將前面的覆蓋
函數(shù)一定是先定義后再調(diào)用
函數(shù)的參數(shù)
函數(shù)的參數(shù)分為兩種:
形式參數(shù)和實(shí)際參數(shù)
形式參數(shù):在定義函數(shù)的時(shí)候的參數(shù)就稱之為形式參數(shù),簡(jiǎn)稱“形參”。在定義函數(shù)的時(shí)候 在函數(shù)名的后面的小括號(hào)里面給的變量名。
實(shí)際參數(shù):在調(diào)用函數(shù)的時(shí)候的參數(shù)就稱之為實(shí)際參數(shù),簡(jiǎn)稱“實(shí)參”。
在一個(gè)函數(shù)中,參數(shù)的多少是根據(jù)功能來(lái)定義的!
使用函數(shù)來(lái)動(dòng)態(tài)的輸出M行N列的表格
return關(guān)鍵字
一般在函數(shù)體里面不會(huì)有輸出語(yǔ)句,只會(huì)有一個(gè)return關(guān)鍵字,將我們要輸出的內(nèi)容返回給函數(shù)的調(diào)用者。
·return在英文中表示“返回”的意思
·return關(guān)鍵字是在函數(shù)體里面使用。
它在函數(shù)體使用有兩層含義:
當(dāng)函數(shù)體里面遇到了return關(guān)鍵字以后,當(dāng)前的這個(gè)函數(shù)就不會(huì)再往下進(jìn)行執(zhí)行了。
2.它會(huì)向函數(shù)的調(diào)用者返回?cái)?shù)據(jù)(重點(diǎn))返回值
格式:return數(shù)據(jù);
在調(diào)用函數(shù)時(shí)可以定義一個(gè)變量要接收到這個(gè)函數(shù)的返回值
注意:
我們?cè)谝院蟮墓ぷ髦?,函?shù)體里面盡量不要有輸出語(yǔ)句(document.write alert console.log ),盡量的使用return關(guān)鍵字將數(shù)據(jù)返回給函數(shù)的調(diào)用者。
特別強(qiáng)調(diào):
·在一個(gè)函數(shù)里面,return關(guān)鍵字可以有多個(gè),但是return只會(huì)執(zhí)行一次;
·return關(guān)鍵字它只能返回一個(gè)數(shù)據(jù),如果需要返回多個(gè)數(shù)據(jù),我們可以將多個(gè)數(shù)據(jù)使用數(shù)組的方式來(lái)保存,然后再將數(shù)組返回。
匿名函數(shù)
什么是匿名函數(shù)?
沒(méi)有名字的函數(shù) 稱之為匿名函數(shù)!注意:匿名函數(shù)在JS中使用最多。
匿名函數(shù)也是需要調(diào)用的!
將匿名函數(shù)賦值給變量或者是事件
a)將匿名函數(shù)賦值給變量,然后通過(guò)變量名加上小括號(hào)來(lái)調(diào)用匿名函數(shù)
b)將匿名函數(shù)賦值給事件 *****
將匿名函數(shù)賦值給事件,那么匿名函數(shù)什么時(shí)候才會(huì)執(zhí)行?它要等到事件觸發(fā)了以后,匿名函數(shù)才會(huì)執(zhí)行。
變量的作用域
什么是變量的作用域?
指變量在什么地方可以使用,什么地方不可以使用。
變量作用域的分類
變量作用域分為:全局作用域和局部作用域。
變量的作用域是通過(guò)函數(shù)來(lái)進(jìn)行劃分的。
在函數(shù)外面定義的變量我們將其稱為全局變量,它的作用域是全局的。
全局作用域: 在任何地方都可以訪問(wèn)到的變量就是全局變量,對(duì)應(yīng)全局作用域
局部作用域: 在固定的代碼片段內(nèi)可訪問(wèn)到的變量,最常見(jiàn)的例如函數(shù)內(nèi)部。對(duì)應(yīng)局部作用域(函數(shù)作用域)
問(wèn):是否能夠提升局部變量的作用域呢?將局部變量的作用域提升至全局作用域。在函數(shù)里面定義的變量也能夠在函數(shù)外面訪問(wèn)到。
只需要將函數(shù)里面定義的變量的var關(guān)鍵字給去掉就可以實(shí)現(xiàn)將局部變量的作用域提升至全局作用域。
但是:并不建議直接就var 關(guān)鍵字給省略,我們建議在函數(shù)的外面定義一個(gè)同名的全局變量。
猜你喜歡: