我覺(jué)得,一個(gè)語(yǔ)言最基本的功能也是最強(qiáng)大的功能,便是他的函數(shù)功能虐杯。有了函數(shù)玛歌,你可以把一個(gè)解決問(wèn)題的方法封裝起來(lái),通過(guò)適量的改變和判斷擎椰,可以讓他功能更加強(qiáng)大支子,也可以通過(guò)無(wú)限的調(diào)用以實(shí)現(xiàn)他最大的功效。
我也是最喜歡函數(shù)的达舒,如果一個(gè)語(yǔ)言沒(méi)有函數(shù)值朋,那么我可能不會(huì)用他吧。在JS中巩搏,函數(shù)基本格式是這樣的:
function demo() {
...code block...
}
//注意大小寫昨登!
現(xiàn)在,我們來(lái)詳細(xì)分析函數(shù)結(jié)構(gòu)贯底,
①? function
這個(gè)語(yǔ)句丰辣,定義了你接著來(lái)寫的是一個(gè)函數(shù),這就是一個(gè)標(biāo)示作用禽捆。
②? demo()?
demo這里是可以自定義的笙什,并非是demo,他只是我給示例函數(shù)的名字胚想,你想給函數(shù)取名字就怎么取琐凭,但是得知道一些命名規(guī)范:
1.不能使用關(guān)鍵字,例如undefined浊服,true统屈,false,return...各種臼闻。
2.不能使用中文以及其他非英文語(yǔ)言鸿吆,也不能使用特殊符號(hào),除了美元符號(hào)$述呐,哦惩淳,對(duì)了,還有下劃線 _ 乓搬。
()
想必第一次學(xué)編程的伙伴看到這個(gè)括號(hào)會(huì)覺(jué)得很奇怪思犁,怎么寫函數(shù)時(shí)老是跟著寫一個(gè)括號(hào),這個(gè)括號(hào)有什么用呢进肯?激蹲?
其實(shí)這個(gè)括號(hào)相當(dāng)于函數(shù)的嘴巴,也相當(dāng)于一個(gè)國(guó)家的海關(guān)江掩,你往里面塞東西学辱,就必須走這里乘瓤,但是東西不能亂塞啊,有些給函數(shù)不要策泣,有些給函數(shù)沒(méi)用衙傀,這是得有一定規(guī)范的。
下面是一個(gè)示例:
function add(num1,num2) {
return num1+num2
}
這個(gè)函數(shù)用于相加并返回傳入的兩個(gè)數(shù)值萨咕,現(xiàn)在你會(huì)看到统抬,括號(hào)里面有東西了,分別為num1和num2危队,他們用逗號(hào)(注意必須是英文的)分隔開(kāi)聪建,分別為兩個(gè)參數(shù),他們本身不代表任何值茫陆,但是在調(diào)用函數(shù)時(shí)就能替換為傳入值金麸,就等于是可替換的一個(gè)東西。
上面的函數(shù)有一個(gè)缺點(diǎn)簿盅,那就是只能傳兩個(gè)數(shù)值钱骂。
如何解決?
現(xiàn)在學(xué)一個(gè)新名詞--? arguments
我們可以稱他為不定參挪鹏,意思就是可以傳入無(wú)數(shù)個(gè)參數(shù),只要你肯傳愉烙。讨盒。
示例:
function add() {
/*注意到這里括號(hào)里什么也沒(méi)有寫,不要以為要把a(bǔ)rguments寫進(jìn)去*/
s=0;
for(i in arguments) {
s+=arguments[i]
}
return s
}
感覺(jué)上這里代碼量增加了許多步责,但是仔細(xì)看看返顺,也就是arguments這個(gè)單詞字?jǐn)?shù)多罷了。蔓肯。但是這個(gè)函數(shù)你可以傳很多個(gè)值遂鹊,一百個(gè),一萬(wàn)個(gè)蔗包,一億個(gè)秉扑,都可以233
③
{
...code block...
}
這里沒(méi)什么說(shuō)的,就是一對(duì)花括號(hào)括起來(lái)调限,里面就是一個(gè)小世界了舟陆,你在里面寫上成百上千的代碼都沒(méi)問(wèn)題,反正他和外界是分開(kāi)的耻矮,他是獨(dú)立的秦躯,括號(hào)里就是函數(shù)的內(nèi)容主體。
//Tips:
1.函數(shù)中用return返回值裆装,注意一個(gè)函數(shù)只能有一個(gè)return踱承,只能有一個(gè)出口倡缠,如果你想傳出多個(gè)值,可以轉(zhuǎn)成數(shù)組或者對(duì)象再傳出去茎活,通過(guò)下標(biāo)或者對(duì)象獲取昙沦。
2.切記,arguments后面一定要加上s妙色,有很多輸入法打出來(lái)(如果你是一個(gè)一個(gè)字敲得就不存在)就是一個(gè)argument桅滋,你不注意就會(huì)出錯(cuò),找bug時(shí)又不是太顯眼身辨,所以請(qǐng)牢記Xつ薄!(別問(wèn)我為什么知道)
3.關(guān)于函數(shù)命名規(guī)范煌珊,你取什么名字是你的自由号俐,但是你不能取得太過(guò)難看,英語(yǔ)好的朋友可以直接用英文取名定庵,英語(yǔ)不好的可以用中文名拼音縮寫來(lái)取(如果有用拼音全部字母取得真的不知道怎么想的)吏饿。在書(shū)寫格式上,推薦駝峰命名法蔬浙,既美觀又容易理解:
function MyFavoriteBook (book) {
...return book...
}
如果是幾個(gè)相關(guān)但分工不同的函數(shù)猪落,可以這樣寫:
function music__play () {
...
}
function music__stop () {
...
}
至此,js函數(shù)算是講完了畴博,如果有什么不懂的或者認(rèn)為我寫錯(cuò)的地方可以提問(wèn)和指正(如果有不對(duì)的地方會(huì)改正的)笨忌,謝謝觀看!俱病!
(:з」∠)_(:з」∠)_