中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js函數的示例分析

發布時間:2022-03-22 14:59:58 來源:億速云 閱讀:99 作者:小新 欄目:web開發

這篇文章主要介紹了js函數的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

函數

1 函數默認值

func = (l, m = 3, n = 4 ) => (l * m * n);
func(2) //output: 24

注意,傳入參數為undefined或者不傳入的時候會使用默認參數,但是傳入null還是會覆蓋默認參數。

2 強制參數

默認情況下,如果不向函數參數傳值,那么JS 會將函數參數設置為undefined。其它一些語言則會發出警告或錯誤。要執行參數分配,可以使用if語句拋出未定義的錯誤,或者可以利用強制參數。

mandatory = ( ) => {
 throw new Error('Missing parameter!');
}
foo = (bar = mandatory( )) => { // 這里如果不傳入參數,就會執行manadatory函數報出錯誤
 return bar;
}

3 隱式返回值

返回值是我們通常用來返回函數最終結果的關鍵字。只有一個語句的箭頭函數,可以隱式返回結果(函數必須省略大括號{ },以便省略返回關鍵字)。
要返回多行語句(例如對象文本),需要使用( )而不是{ }來包裹函數體。這樣可以確保代碼以單個語句的形式進行求值。

function calcCircumference(diameter) {
 return Math.PI * diameter
}
// 簡寫為:
calcCircumference = diameter => (
 Math.PI * diameter;
)

4 惰性載入函數

在某個場景下我們的函數中有判斷語句,這個判斷依據在整個項目運行期間一般不會變化,所以判斷分支在整個項目運行期間只會運行某個特定分支,那么就可以考慮惰性載入函數

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();
}

那么第一次運行之后就會覆寫這個方法,下一次再運行的時候就不會執行判斷了。當然現在只有一個判斷,如果判斷很多,分支比較復雜,那么節約的資源還是可觀的。

5 一次性函數

跟上面的惰性載入函數同理,可以在函數體里覆寫當前函數,那么可以創建一個一次性的函數,重新賦值之前的代碼相當于只運行了一次,適用于運行一些只需要執行一次的初始化代碼

var sca = function() {
 console.log('msg')
 sca = function() {
 console.log('foo')
 }
}
sca() // msg
sca() // foo
sca() // foo

感謝你能夠認真閱讀完這篇文章,希望小編分享的“js函數的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

桦川县| 保亭| 永康市| 响水县| 鄱阳县| 许昌市| 图片| 仁布县| 浙江省| 刚察县| 大丰市| 定结县| 出国| 翁牛特旗| 新干县| 富源县| 西乡县| 沁水县| 安吉县| 兰州市| 茌平县| 安陆市| 安溪县| 信丰县| 沈丘县| 岱山县| 阳曲县| 仪征市| 廊坊市| 吉隆县| 海丰县| 福州市| 策勒县| 唐河县| 临安市| 镇远县| 古丈县| 车致| 宾阳县| 台南市| 永安市|