91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

陇南市| 名山县| 绥化市| 湄潭县| 普安县| 扶绥县| 济阳县| 吕梁市| 内江市| 上高县| 正安县| 德州市| 察哈| 恩施市| 襄垣县| 京山县| 通化市| 广南县| 天镇县| 乌拉特后旗| 滦南县| 喀喇沁旗| 文昌市| 波密县| 台北县| 南开区| 高阳县| 丰宁| 宁蒗| 长白| 册亨县| 青州市| 容城县| 基隆市| 子长县| 滨海县| 汽车| 郓城县| 于田县| 蒙阴县| 和田市|