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