陳鍾誠

Version 1.0

#函數:取大值 max(a,b)

檔案: max.js

function max(a,b) {
  if (a>b)
    return a;
  else
    return b;
}

m = max(9,5);
console.log("max(9,5)="+m);

執行結果:

$ node max.js
max(9,5)=9

在此必須說明一點,函數呼叫時,參數的傳遞與名稱無關,而是與參數的位置有關。

舉例而言,上面我們用 max(9,5) 呼叫 max 函數,此時 a, b 分別會帶入 a=9, b=5 的值進去,因此判斷式會得到 if (9>5) return 9; 於是會傳回 9.

但是如果我們用下列的呼叫方式,那麼就會得到 z=7。

x=3; y=7;
z = max(x,y); // 此時 x 會代入 a, y 會代入 b 於是得到 max(x,y) = max(3,7) = 7

假如呼叫時有 a, b 等變數,也不會因為名稱相同而代入,而是按照位置填入,舉例而言,在以下程式中,

a=8; b=2;
c = max(b,a); // 此時 b=2 會代入參數 a, 而 a=8 會代入參數 b 於是得到 max(b,a) = max(2,8) = 8

總而言之,函數是根據呼叫時的位置代入的,而非根據名字。