JavaScript中使用arguments獲得函數(shù)傳參個數(shù)實例
JS與PHP在函數(shù)傳參方面有點不同,PHP形參與實參個數(shù)要匹配,而JS就靈活多了,可以隨意傳參,實參比形參少或多都不會報錯。
實參比形參多不會報錯
function say(a){
alert(a);
}
say('瓊臺博客','WEB技術(shù)博客');
執(zhí)行結(jié)果

我們再來看看形參比實參多的結(jié)果
function say(a,b){
alert('a 的值是 '+a+'\nb 的值是 '+b);
}
say('瓊臺博客');
執(zhí)行結(jié)果

a 對應(yīng)第一個實參“瓊臺博客”,b 沒有對應(yīng)的實參所以值為undefined
arguments對象
其實有時候我們在程序設(shè)計比較復(fù)雜的時候并不指定參數(shù)個數(shù),都是靈活運用。在函數(shù)里有一個數(shù)組arguments就是專門存儲實參數(shù)組的,通過arguments我們就可以知道實參個數(shù)以及值。
function arg(){
var str = '總共傳了'+arguments.length+'個參數(shù)\n';
for(var i=0;i<arguments.length;i++){
str += '第'+(i+1)+'個參數(shù)值:'+arguments[i]+'\n';
}
alert(str);
}
arg('瓊臺博客','PHP博客','WEB技術(shù)博客');
執(zhí)行結(jié)果

在以上例子中,我們定義函數(shù)arg并沒有給它指定形參,而是使用arguments對象接收實參,非常靈活。
比如我們可以利用它來計算出一組數(shù)字里最小的數(shù)字,不管這組數(shù)字有多少個。如以下代碼:
function arg(){
var tmp = 0, str = '在 ';
for(var i=0;i<arguments.length;i++){
for(var g=0;g<arguments.length;g++){
if(arguments[g]<arguments[i]){
tmp = arguments[g];
}
}
str += arguments[i]+',';
}
alert(str.substr(0,str.length-1)+' 里最小的值是 '+tmp);
}
arg(200,100,59,3500);
執(zhí)行 200,100,59,3500 四個數(shù)對比結(jié)果

我們在加入兩個數(shù),分別是 5 和 60
function arg(){
var tmp = 0, str = '在 ';
for(var i=0;i<arguments.length;i++){
for(var g=0;g<arguments.length;g++){
if(arguments[g]<arguments[i]){
tmp = arguments[g];
}
}
str += arguments[i]+',';
}
alert(str.substr(0,str.length-1)+' 里最小的值是 '+tmp);
}
arg(200,100,59,3500,5,60);
執(zhí)行 200,100,59,3500,5,60 六個數(shù)對比結(jié)果

根據(jù)兩次運算結(jié)果,我們發(fā)現(xiàn)無論我們傳進多少個數(shù)字,都能正確比對結(jié)果。arguments一般用在實參個數(shù)不定的地方,比如上邊的例子,你可以傳5個數(shù)進去比較,也可以傳100個數(shù)進去比較都可以。
- js的隱含參數(shù)(arguments,callee,caller)使用方法
- javascript內(nèi)置對象arguments詳解
- javascript arguments 傳遞給函數(shù)的隱含參數(shù)
- javascript 利用arguments實現(xiàn)可變長參數(shù)
- JS函數(shù)動態(tài)傳遞參數(shù)的方法分析【基于arguments對象】
- javascript arguments使用示例
- Javascript中arguments對象的詳解與使用方法
- JS中call/apply、arguments、undefined/null方法詳解
- 深入理解JS函數(shù)的參數(shù)(arguments)的使用
- JavaScript中arguments的使用方法詳解
相關(guān)文章
JS for循環(huán)中i++ 和 ++i的區(qū)別介紹
這篇文章主要介紹了JS for循環(huán)中i++ 和 ++i的區(qū)別介紹的相關(guān)資料,需要的朋友可以參考下2016-07-07
JS根據(jù)年月獲得當月天數(shù)的實現(xiàn)代碼
這篇文章主要介紹了JS根據(jù)年月獲得當月天數(shù)的實現(xiàn)代碼,需要的朋友可以參考下2014-07-07
為JavaScript提供睡眠功能(sleep) 自編譯JS引擎
如何在js中讓函數(shù)睡眠多少秒? 經(jīng)常會有Javascript初學者提出這樣的問題,自從js出現(xiàn)以來.2010-08-08
微信小程序tabBar組件切換與下拉刷新實現(xiàn)詳解
tabBar相對而言用的還是比較多的,但是用起來并沒有難,下面這篇文章主要給大家介紹了關(guān)于微信小程序全局配置之tabBar的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細,需要的朋友可以參考下2022-10-10
javascript eval和JSON之間的聯(lián)系
本文著重解釋eval函數(shù)和JSON數(shù)據(jù)格式之間的聯(lián)系以及一些細節(jié)上的問題。2009-12-12

