日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)JAVA教程:JavaScript函數(shù)參數(shù)

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

JavaScript 函數(shù)參數(shù)與大多數(shù)其他語言的函數(shù)參數(shù)的區(qū)別在于:它不會關(guān)注有多少個(gè)參數(shù)被傳遞,不關(guān)注傳遞的參數(shù)的數(shù)據(jù)類型。


函數(shù)顯式參數(shù)與隱藏參數(shù)(arguments)

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

functionName(
parameter1, parameter2, parameter3) {

   
code to be executed

}

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

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


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

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

JavaScript 函數(shù)對隱藏參數(shù)(arguments)沒有進(jìn)行檢測。

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


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

如果函數(shù)在調(diào)用時(shí)缺少參數(shù),參數(shù)會默認(rèn)設(shè)置為: undefined

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

實(shí)例

function myFunction(x, y) {

    if (y === undefined) {

          y = 0;

    }

}

嘗試一下 ?

或者,更簡單的方式:

實(shí)例

function myFunction(x, y) {

    y = y || 0;

}

嘗試一下 ?

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

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


Arguments 對象

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

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

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

實(shí)例

x = findMax(1, 123, 500, 115, 44, 88);

function findMax() {

    var i, max = arguments[0];

    if(arguments.length < 2)return max;

    for (i = 0; i < arguments.length; i++) {

        if (arguments[i] > max) {

            max = arguments[i];

        }

    }

    return max;

}

嘗試一下 ?

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

實(shí)例

x = sumAll(1, 123, 500, 115, 44, 88);

function sumAll() {

    var i, sum = 0;

    for (i = 0; i < arguments.length; i++) {

        sum += arguments[i];

    }

    return sum;

}

嘗試一下 ?


通過值傳遞參數(shù)

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

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

總結(jié):JavaScript函數(shù)傳值只是將參數(shù)的值傳入函數(shù),函數(shù)會另外配置內(nèi)存保存參數(shù)值,所以并不會改變原參數(shù)的值。

實(shí)例

var x = 1;
// 通過值傳遞參數(shù)
function myFunction(x) {
    x++; //修改參數(shù)x的值,將不會修改在函數(shù)外定義的變量 x
    console.log(x);
}
myFunction(x); // 2
console.log(x); // 1

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

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

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

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

實(shí)例

var obj = {x:1};
// 通過對象傳遞參數(shù)
function myFunction(obj) {
    obj.x++; //修改參數(shù)對象obj.x的值,函數(shù)外定義的obj也將會被修改
    console.log(obj.x);
}
myFunction(obj); // 2
console.log(obj.x); // 2

提示:你可以在本站的JavaScript編程實(shí)戰(zhàn)中練習(xí)使用JavaScript函數(shù)參數(shù)!


本文標(biāo)題:創(chuàng)新互聯(lián)JAVA教程:JavaScript函數(shù)參數(shù)
瀏覽路徑:http://www.5511xx.com/article/dphoshs.html