国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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


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


函數(shù)顯式參數(shù)(Parameters)與隱式參數(shù)(Arguments)

在先前的教程中,我們已經(jīng)學(xué)習(xí)了函數(shù)的顯式參數(shù):

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

函數(shù)顯式參數(shù)在函數(shù)定義時(shí)列出。

函數(shù)隱式參數(shù)在函數(shù)調(diào)用時(shí)傳遞給函數(shù)真正的值。


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

JavaScript 函數(shù)定義時(shí)顯示參數(shù)沒有指定數(shù)據(jù)類型。

JavaScript 函數(shù)對(duì)隱式參數(shù)沒有進(jìn)行類型檢測(cè)。

JavaScript 函數(shù)對(duì)隱式參數(shù)的個(gè)數(shù)沒有進(jìn)行檢測(cè)。


默認(rèn)參數(shù)

如果函數(shù)在調(diào)用時(shí)未提供隱式參數(shù),參數(shù)會(huì)默認(rèn)設(shè)置為:undefined

有時(shí)這是可以接受的,但是建議最好為參數(shù)設(shè)置一個(gè)默認(rèn)值:

實(shí)例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>

<p>設(shè)置參數(shù)的默認(rèn)值。</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>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

或者,更簡(jiǎn)單的方式:

實(shí)例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>

<p>設(shè)置函數(shù)參數(shù)默認(rèn)值。</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>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

Note如果y已經(jīng)定義 , y || 返回 y, 因?yàn)?y 是 true, 否則返回 0, 因?yàn)?undefined 為 false。

如果函數(shù)調(diào)用時(shí)設(shè)置了過多的參數(shù),參數(shù)將無法被引用,因?yàn)闊o法找到對(duì)應(yīng)的參數(shù)名。 只能使用 arguments 對(duì)象來調(diào)用。


Arguments 對(duì)象

JavaScript 函數(shù)有個(gè)內(nèi)置的對(duì)象 arguments 對(duì)象。

argument 對(duì)象包含了函數(shù)調(diào)用的參數(shù)數(shù)組。

通過這種方式你可以很方便的找到最后一個(gè)參數(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>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

或者創(chuàng)建一個(gè)函數(shù)用來統(tǒng)計(jì)所有數(shù)值的和:

實(shí)例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>

<p>計(jì)算所有參數(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>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例


通過值傳遞參數(shù)

在函數(shù)中調(diào)用的參數(shù)是函數(shù)的隱式參數(shù)。

JavaScript 隱式參數(shù)通過值來傳遞:函數(shù)僅僅只是獲取值。

如果函數(shù)修改參數(shù)的值,不會(huì)修改顯式參數(shù)的初始值(在函數(shù)外定義)。

隱式參數(shù)的改變?cè)诤瘮?shù)外是不可見的。


通過對(duì)象傳遞參數(shù)

在JavaScript中,可以引用對(duì)象的值。

因此我們?cè)诤瘮?shù)內(nèi)部修改對(duì)象的屬性就會(huì)修改其初始的值。

修改對(duì)象屬性可作用于函數(shù)外部(全局變量)。

修改對(duì)象屬性在函數(shù)外是可見的。