這篇文章主要介紹了js函數(shù)的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)永順,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575
func = (l, m = 3, n = 4 ) => (l * m * n); func(2) //output: 24
注意,傳入?yún)?shù)為undefined
或者不傳入的時(shí)候會(huì)使用默認(rèn)參數(shù),但是傳入null
還是會(huì)覆蓋默認(rèn)參數(shù)。
默認(rèn)情況下,如果不向函數(shù)參數(shù)傳值,那么JS 會(huì)將函數(shù)參數(shù)設(shè)置為undefined
。其它一些語(yǔ)言則會(huì)發(fā)出警告或錯(cuò)誤。要執(zhí)行參數(shù)分配,可以使用if
語(yǔ)句拋出未定義的錯(cuò)誤,或者可以利用強(qiáng)制參數(shù)。
mandatory = ( ) => { throw new Error('Missing parameter!'); } foo = (bar = mandatory( )) => { // 這里如果不傳入?yún)?shù),就會(huì)執(zhí)行manadatory函數(shù)報(bào)出錯(cuò)誤 return bar; }
返回值是我們通常用來(lái)返回函數(shù)最終結(jié)果的關(guān)鍵字。只有一個(gè)語(yǔ)句的箭頭函數(shù),可以隱式返回結(jié)果(函數(shù)必須省略大括號(hào){ }
,以便省略返回關(guān)鍵字)。
要返回多行語(yǔ)句(例如對(duì)象文本),需要使用( )
而不是{ }
來(lái)包裹函數(shù)體。這樣可以確保代碼以單個(gè)語(yǔ)句的形式進(jìn)行求值。
function calcCircumference(diameter) { return Math.PI * diameter } // 簡(jiǎn)寫(xiě)為: calcCircumference = diameter => ( Math.PI * diameter; )
在某個(gè)場(chǎng)景下我們的函數(shù)中有判斷語(yǔ)句,這個(gè)判斷依據(jù)在整個(gè)項(xiàng)目運(yùn)行期間一般不會(huì)變化,所以判斷分支在整個(gè)項(xiàng)目運(yùn)行期間只會(huì)運(yùn)行某個(gè)特定分支,那么就可以考慮惰性載入函數(shù)
function foo(){ if(a !== b){ console.log('aaa') }else{ console.log('bbb') } } // 優(yōu)化后 function foo(){ if(a != b){ foo = function(){ console.log('aaa') } }else{ foo = function(){ console.log('bbb') } } return foo(); }
那么第一次運(yùn)行之后就會(huì)覆寫(xiě)這個(gè)方法,下一次再運(yùn)行的時(shí)候就不會(huì)執(zhí)行判斷了。當(dāng)然現(xiàn)在只有一個(gè)判斷,如果判斷很多,分支比較復(fù)雜,那么節(jié)約的資源還是可觀的。
跟上面的惰性載入函數(shù)同理,可以在函數(shù)體里覆寫(xiě)當(dāng)前函數(shù),那么可以創(chuàng)建一個(gè)一次性的函數(shù),重新賦值之前的代碼相當(dāng)于只運(yùn)行了一次,適用于運(yùn)行一些只需要執(zhí)行一次的初始化代碼
var sca = function() { console.log('msg') sca = function() { console.log('foo') } } sca() // msg sca() // foo sca() // foo
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“js函數(shù)的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!