JS函數返回值和return關鍵字

2020-07-16 10:05:02
JavaScript 函數提供兩個介面實現與外界的互動,其中引數作為入口,接收外界資訊;返回值作為出口,把運算結果反饋給外界。

在函數體內,使用 return 語句可以設定函數的返回值。一旦執行 return 語句,將停止函數的執行,並運算和返回 return 後面的表示式的值。如果函數不包含 return 語句,則執行完函數體內每條語句後,返回 undefined 值。

JavaScript 是一種弱型別語言,所以函數對接收和輸出的值都沒有型別限制,JavaScript 也不會自動檢測輸入和輸出值的型別。

範例1

下面程式碼定義函數的返回值為函數。
function f() {
    return function(x,y) {
        return x + y;
    }
}

範例2

函數的引數沒有限制,但是返回值只能是一個;如果要輸出多個值,可以通過陣列或物件進行設計。
function f() {
    var a = [];
    a[0] = true;
    a[1] = function(x,y) {
        return x + y;
    }
    a[2] = 123;
    return a;  //返回多個值
}
在上面程式碼中,函數返回值為陣列,該陣列包含 3 個元素,從而實現使用一個 return 語句,返回多個值得目的。

範例3

在函數體內可以包含多條 return 語句,但是僅能執行一條 return 語句,因此在函數體內可以使用分支結構決定函數返回值,或者使用 return 語句提前終止函數執行。
function f(x,y) {
    //如果引數為非數位型別,則終止函數執行
    if (typeof x != "number" || typeof y != "number") return;
    //根據條件返回值
    if (x > y) return x - y;
    if (x < y) return y - x;
    if (x * y <= 0) return x + y;
}