您好,登錄后才能下訂單哦!
這篇文章主要介紹了js函數的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
func = (l, m = 3, n = 4 ) => (l * m * n); func(2) //output: 24
注意,傳入參數為undefined
或者不傳入的時候會使用默認參數,但是傳入null
還是會覆蓋默認參數。
默認情況下,如果不向函數參數傳值,那么JS 會將函數參數設置為undefined
。其它一些語言則會發出警告或錯誤。要執行參數分配,可以使用if
語句拋出未定義的錯誤,或者可以利用強制參數。
mandatory = ( ) => { throw new Error('Missing parameter!'); } foo = (bar = mandatory( )) => { // 這里如果不傳入參數,就會執行manadatory函數報出錯誤 return bar; }
返回值是我們通常用來返回函數最終結果的關鍵字。只有一個語句的箭頭函數,可以隱式返回結果(函數必須省略大括號{ }
,以便省略返回關鍵字)。
要返回多行語句(例如對象文本),需要使用( )
而不是{ }
來包裹函數體。這樣可以確保代碼以單個語句的形式進行求值。
function calcCircumference(diameter) { return Math.PI * diameter } // 簡寫為: calcCircumference = diameter => ( Math.PI * diameter; )
在某個場景下我們的函數中有判斷語句,這個判斷依據在整個項目運行期間一般不會變化,所以判斷分支在整個項目運行期間只會運行某個特定分支,那么就可以考慮惰性載入函數
function foo(){ if(a !== b){ console.log('aaa') }else{ console.log('bbb') } } // 優化后 function foo(){ if(a != b){ foo = function(){ console.log('aaa') } }else{ foo = function(){ console.log('bbb') } } return foo(); }
那么第一次運行之后就會覆寫這個方法,下一次再運行的時候就不會執行判斷了。當然現在只有一個判斷,如果判斷很多,分支比較復雜,那么節約的資源還是可觀的。
跟上面的惰性載入函數同理,可以在函數體里覆寫當前函數,那么可以創建一個一次性的函數,重新賦值之前的代碼相當于只運行了一次,適用于運行一些只需要執行一次的初始化代碼
var sca = function() { console.log('msg') sca = function() { console.log('foo') } } sca() // msg sca() // foo sca() // foo
感謝你能夠認真閱讀完這篇文章,希望小編分享的“js函數的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。