亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

JavaScript 函數(shù)參數(shù)

JavaScript? 函數(shù)對參數(shù)的值沒有進行任何的檢查。


函數(shù)明確參數(shù)(Parameters)與隱含參數(shù)(Arguments)

在先前的教學中,我們已經(jīng)學習了函數(shù)的明確參數(shù):

functionName(parameter1, parameter2, parameter3) {
????// 要執(zhí)行的程式碼…
}

函數(shù)明確參數(shù)在函數(shù)定義時列出。

函數(shù)隱含參數(shù)在函數(shù)呼叫時傳遞給函數(shù)真正的值。


參數(shù)規(guī)則

#JavaScript 函數(shù)定義時顯示??參數(shù)沒有指定資料型別。

JavaScript 函數(shù)對隱式參數(shù)沒有進行型別偵測。

JavaScript 函數(shù)對隱式參數(shù)的數(shù)量沒有進行偵測。


預設參數(shù)

如果函數(shù)在呼叫時未提供隱式參數(shù),參數(shù)會預設為:?undefined

有時這是可以接受的,但是建議最好為參數(shù)設定一個預設值:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php中文網(wǎng)(php.cn)</title>
</head>
<body>
<p>設置參數(shù)的默認值。</p>
<p id="demo"></p>
<script>
    function myFunction(x, y) {
        if (y === undefined) {
            y = 0;
        }
        return x * y;
    }
    document.getElementById("demo").innerHTML = myFunction(4);
</script>
</body>
</html>

執(zhí)行程式嘗試


#或者,更簡單的方式:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>
<p>設置函數(shù)參數(shù)默認值。</p>
<p id="demo"></p>
<script>
function myFunction(x, y) {
    y = y || 0;
    return x * y;
}
document.getElementById("demo").innerHTML = myFunction(4);
</script>
</body>
</html>

執(zhí)行程式嘗試

提示:如果y已經(jīng)定義,y || 回傳 y, 因為y 是true, 否則回傳0, 因為undefined 為false。


如果函數(shù)呼叫時設定了過多的參數(shù),參數(shù)將無法被引用,因為無法找到對應的參數(shù)名稱。 只能使用 arguments 物件來呼叫。

Arguments 物件

JavaScript 函數(shù)有個內(nèi)建的物件 arguments 物件。

argument 物件包含了函數(shù)呼叫的參數(shù)陣列。

透過這種方式你可以很方便的找到最後一個參數(shù)的值:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>
<p>查找最大的數(shù)。</p>
<p id="demo"></p>
<script>
function findMax() {
    var i, max = 0;
    for(i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;
} 
document.getElementById("demo").innerHTML = findMax(4, 5, 6);
</script>
</body>
</html>

執(zhí)行程式嘗試

#或建立一個函數(shù)用來統(tǒng)計所有數(shù)值的和:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>
<p>計算所有參數(shù)之和:</p>
<p id="demo"></p>
<script>
function sumAll() {
    var i, sum = 0;
    for(i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }
    return sum;
} 
document.getElementById("demo").innerHTML =
sumAll(1, 123, 500, 115, 44, 88);
</script>
</body>
</html>

執(zhí)行程式嘗試


透過值傳遞參數(shù)

在函數(shù)中呼叫的參數(shù)是函數(shù)的隱式參數(shù)。

JavaScript 隱含參數(shù)透過值來傳遞:函數(shù)只是只取得值。

如果函數(shù)修改參數(shù)的值,不會修改明確參數(shù)的初始值(在函數(shù)外定義)。

隱式參數(shù)的改變在函數(shù)外是不可見的。


透過物件傳遞參數(shù)

在JavaScript中,可以引用對象的值。

因此我們在函數(shù)內(nèi)部修改物件的屬性就會修改其初始的值。

修改物件屬性可作用於函數(shù)外部(全域變數(shù))。

修改物件屬性在函數(shù)外是可見的。



繼續(xù)學習
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> </head> <body> <p>查找最大的數(shù)。</p> <p id="demo"></p> <script> function findMax() { var i, max = 0; for(i = 0; i < arguments.length; i++) { if (arguments[i] > max) { max = arguments[i]; } } return max; } document.getElementById("demo").innerHTML = findMax(4, 5, 6); </script> </body> </html>