JavaScript 函數參數

來源:互聯網
上載者:User

標籤:數值   傳遞參數   最大的   個數   function   ++   擷取值   ack   擷取   

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

函數顯式參數在函數定義時列出。

函數隱式參數在函數調用時傳遞給函數真正的值。

參數規則

JavaScript 函數定義時顯示參數沒有指定資料類型。

JavaScript 函數對隱式參數沒有進行類型檢測。

JavaScript 函數對隱式參數的個數沒有進行檢測。

預設參數

如果函數在調用時未提供隱式參數,參數會預設設定為: undefined

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

function myFunction(x, y) {    if (y === undefined) {          y = 0;    } }
function myFunction(x, y) {    y = y || 0;}

如果y已經定義 , y || 返回 y, 因為 y 是 true, 否則返回 0, 因為 undefined 為 false。

Arguments 對象

JavaScript 函數有個內建的對象 arguments 對象。

argument 對象包含了函數調用的參數數組。

通過這種方式你可以很方便的找到最大的一個參數的值:

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;}

或者建立一個函數用來統計所有數值的和:

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;}
通過值傳遞參數

在函數中調用的參數是函數的隱式參數。

JavaScript 隱式參數通過值來傳遞:函數僅僅只是擷取值。

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

隱式參數的改變在函數外是不可見的。

通過對象傳遞參數

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

因此我們在函數內部修改對象的屬性就會修改其初始的值。

修改對象屬性可作用於函數外部(全域變數)。

修改對象屬性在函數外是可見的。

 

JavaScript 函數參數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.