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

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

a 對應(yīng)第一個實(shí)參“瓊臺博客”,b 沒有對應(yīng)的實(shí)參所以值為undefined
arguments對象
其實(shí)有時候我們在程序設(shè)計(jì)比較復(fù)雜的時候并不指定參數(shù)個數(shù),都是靈活運(yùn)用。在函數(shù)里有一個數(shù)組arguments就是專門存儲實(shí)參數(shù)組的,通過arguments我們就可以知道實(shí)參個數(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í)參,非常靈活。
比如我們可以利用它來計(jì)算出一組數(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ù)兩次運(yùn)算結(jié)果,我們發(fā)現(xiàn)無論我們傳進(jìn)多少個數(shù)字,都能正確比對結(jié)果。arguments一般用在實(shí)參個數(shù)不定的地方,比如上邊的例子,你可以傳5個數(shù)進(jìn)去比較,也可以傳100個數(shù)進(jìn)去比較都可以。
以上這篇JS函數(shù)arguments數(shù)組獲得實(shí)際傳參數(shù)個數(shù)的實(shí)現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Handtrack.js庫實(shí)現(xiàn)實(shí)時監(jiān)測手部運(yùn)動(推薦)
這篇文章主要介紹了實(shí)時監(jiān)測手部運(yùn)動的 JS 庫,可以實(shí)現(xiàn)很多有趣功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
微信小程序WebSocket實(shí)現(xiàn)聊天對話功能
這篇文章主要為大家詳細(xì)介紹了微信小程序WebSocket實(shí)現(xiàn)聊天對話功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07
JavaScript實(shí)現(xiàn)將xml轉(zhuǎn)換成html table表格的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)將xml轉(zhuǎn)換成html table表格的方法,實(shí)例分析了javascript操作XML文件與table表格的技巧,非常具有實(shí)用價值,需要的朋友可以參考下2015-04-04
JavaScript實(shí)現(xiàn)設(shè)計(jì)模式中的單例模式的一些技巧總結(jié)
單例模式是JavaScript項(xiàng)目中最常用的設(shè)計(jì)模式之一,下面羅列了JavaScript實(shí)現(xiàn)設(shè)計(jì)模式中的單例模式的一些技巧總結(jié),包括惰性加載與分支技術(shù)等,需要的朋友可以參考下.2016-05-05
神奇的代碼 通殺各種網(wǎng)站-可隨意修改復(fù)制頁面內(nèi)容
在瀏覽器地址欄輸入這一行代碼,然后回車,就發(fā)現(xiàn)整個頁面都可以隨意編輯了。僅僅是一行很短的代碼。2008-07-07
extjs4圖表繪制之折線圖實(shí)現(xiàn)方法分析
這篇文章主要介紹了extjs4圖表繪制之折線圖實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了extjs4繪制折線圖的相關(guān)操作技巧、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2020-03-03
javascript實(shí)現(xiàn)的猜數(shù)小游戲完整實(shí)例代碼
這篇文章主要介紹了javascript實(shí)現(xiàn)的猜數(shù)小游戲,游戲中用戶共有10次猜測機(jī)會,并且每次都有不同的提示信息,該游戲涉及javascript流程控制與數(shù)值運(yùn)算的相關(guān)技巧,需要的朋友可以參考下2016-05-05

