(寫在文前的話:本文涉及到的編譯軟件為WebStorm绸狐,同類編譯軟件用法大同小異花吟。JavaScript本文簡稱"JS"胞锰。)
在JS程序中爽茴,經(jīng)常會(huì)遇到需要多次重復(fù)操作的情況葬凳,這是需要重復(fù)書寫相同的代碼,這樣不僅加重了開發(fā)人員的工作量室奏,而且增加了后期代碼維護(hù)的工作量。所以此時(shí)誕生了函數(shù)這個(gè)東西窍奋。那么接下來我們來了解一下函數(shù)
?1荐健、什么是函數(shù)酱畅?為什么要用函數(shù)?
(一)江场、函數(shù)是在計(jì)算機(jī)程序中用多條語句組成的邏輯單位纺酸。在JS中,函數(shù)使用關(guān)鍵字function來定義址否。
(二)餐蔬、使用函數(shù)是為了是代碼簡潔并可以重復(fù)使用,通常會(huì)將某段實(shí)現(xiàn)特定功能的代碼定義成一個(gè)函數(shù)佑附。
2樊诺、函數(shù)的語法格式
<script type="text/javascript">? ? ? ? //此行代碼用于在HTML文件中聲明這將是一段js代碼
function 函數(shù)名([參數(shù)1,參數(shù)二,......]) {? ? //中括號(hào)中表示非必寫項(xiàng)音同,根據(jù)需要決定
? ? ? ? ? ? ? ? ?函數(shù)體
}
</script>
根據(jù)上述語法我們可以看出词爬,函數(shù)由關(guān)鍵字“function”、“函數(shù)名”权均、“參數(shù)”顿膨、和“函數(shù)體”4部分來定義,對(duì)這四個(gè)部分的詳細(xì)解釋如下:
? ? ? ①.function:在函數(shù)聲明時(shí)必須使用的關(guān)鍵字叽赊,必須使用恋沃!
? ? ? ②.函數(shù)名:創(chuàng)建函數(shù)的名稱,函數(shù)名的唯一的
? ? ? ③.參數(shù):外界傳遞給函數(shù)的值必指,它是可選的囊咏,當(dāng)有多個(gè)參數(shù)的時(shí)候,每個(gè)參數(shù)之間用逗號(hào)隔開
? ? ? ?④.函數(shù)體:函數(shù)定義的主體塔橡,專門用于實(shí)現(xiàn)特定的功能梅割。
來個(gè)小例子吧:
(可能由于瀏覽器解析原因,展示不出來標(biāo)簽...所以放圖片啦 ~~qaq)
? ? 運(yùn)行這段代碼谱邪,我們會(huì)發(fā)現(xiàn)看不到任何內(nèi)容炮捧。這是因?yàn)楹瘮?shù)hello()庶诡,沒有定義參數(shù),外界的值傳不進(jìn)函數(shù)惦银。所以這時(shí)候需要一個(gè)被稱為“函數(shù)調(diào)用”的機(jī)制來激活。
3末誓、函數(shù)的調(diào)用
函數(shù)定義后并不會(huì)自動(dòng)執(zhí)行扯俱,而是需要在特定的位置調(diào)用函數(shù)。函數(shù)的調(diào)用只需要引用函數(shù)名喇澡,并傳入相應(yīng)的參數(shù)即可迅栅。函數(shù)調(diào)用語法格式如下:
函數(shù)名([參數(shù) 1,參數(shù) 2,.....)
? ? 上述語法中,“[參數(shù)1晴玖,參數(shù)2,....]”也是可選的读存,用于表示參數(shù)列表为流,它的值可以是一個(gè)或多個(gè)。
再來的小例子吧~
當(dāng)執(zhí)行這個(gè)函數(shù)調(diào)用的時(shí)候让簿,首先執(zhí)行函數(shù)hello()的函數(shù)體敬察,然后,JS在執(zhí)行其函數(shù)體之前 會(huì)把實(shí)參值"你好呀尔当!"傳給形參text莲祸。這樣在執(zhí)行函數(shù)的時(shí)候,作為變量的形參text就有了確切的值椭迎。
(形參:是在定義函數(shù)時(shí)使用的參數(shù)锐帜,目的是用來接收調(diào)用該函數(shù)時(shí)傳進(jìn)來的實(shí)際參數(shù)。?
實(shí)參:是在調(diào)用時(shí)傳遞給函數(shù)的參數(shù)畜号。通俗來講形參就是一個(gè)記號(hào)缴阎,而形參就是實(shí)際輸出的參數(shù))
4、函數(shù)中變量的作用域
函數(shù)中的變量需要先聲明后使用简软,但是這不等于定義了變量后就可以隨便使用药蜻。變量需要在它的作用范圍內(nèi)才可以被使用,這個(gè)作用范圍取決于變量它是哪一種變量替饿,在JS中语泽,變量一般分為全局變量和局部變量。具體解釋如下:
全局變量:定義在所有函數(shù)之外视卢,作用于整個(gè)程序的代碼踱卵。
局部變量:定義在函數(shù)體之內(nèi),作用于該函數(shù)體据过。
(具體用法詳見上一篇:JS中變量的用法)
好啦惋砂,關(guān)于JS中函的的用法就到這啦,歡迎大家提出寶貴的建議绳锅!
喜歡的話給個(gè)小心心吧~?(?>?<?)?