中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

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ù)

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

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

實(shí)例(ES5)

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

運(yùn)行代碼 ?

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

實(shí)例(ES5)

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

運(yùn)行代碼 ?

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)用。

ES6 函數(shù)可以自帶參數(shù)

ES6 支持函數(shù)帶有默認(rèn)參數(shù),就判斷 undefined 和 || 的操作:

實(shí)例(ES6)

function myFunction(x, y = 10) { // y is 10 if not passed or undefined return x + y; } myFunction(0, 2) // 輸出 2 myFunction(5); // 輸出 15, y 參數(shù)的默認(rèn)值

運(yùn)行代碼 ?

arguments 對(duì)象

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

argument 對(duì)象包含了函數(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; }

運(yùn)行代碼 ?

或者創(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; }

運(yùn)行代碼 ?

通過值傳遞參數(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ù)外是可見的。