JS函數(shù)arguments數(shù)組獲得實際傳參數(shù)個數(shù)的實現(xiàn)方法
JS與PHP在函數(shù)傳參方面有點(diǎn)不同,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ù),都是靈活運(yùn)用。在函數(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ù)兩次運(yùn)算結(jié)果,我們發(fā)現(xiàn)無論我們傳進(jìn)多少個數(shù)字,都能正確比對結(jié)果。arguments一般用在實參個數(shù)不定的地方,比如上邊的例子,你可以傳5個數(shù)進(jìn)去比較,也可以傳100個數(shù)進(jìn)去比較都可以。
以上這篇JS函數(shù)arguments數(shù)組獲得實際傳參數(shù)個數(shù)的實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決微信授權(quán)成功后點(diǎn)擊按返回鍵出現(xiàn)空白頁和報錯的問題
這篇文章主要介紹了解決微信授權(quán)成功后點(diǎn)擊按返回鍵出現(xiàn)空白頁和報錯的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06JavaScript實現(xiàn)函數(shù)返回多個值的方法
這篇文章主要介紹了JavaScript實現(xiàn)函數(shù)返回多個值的方法,涉及javascript字典類型的使用技巧,需要的朋友可以參考下2015-06-06js對列表中第一個值處理與jsp頁面對列表中第一個值處理的區(qū)別詳解
本文是對js對列表中第一個值處理與jsp頁面對列表中第一個值處理的區(qū)別進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11詳解webpack 配合babel 將es6轉(zhuǎn)成es5 超簡單實例
本篇文章主要介紹了詳解webpack 配合babel 將es6轉(zhuǎn)成es5 超簡單實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05JS如何根據(jù)條件取出數(shù)組中對應(yīng)項
這篇文章主要介紹了JS根據(jù)條件取出數(shù)組中對應(yīng)項,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03axios如何利用promise無痛刷新token的實現(xiàn)方法
這篇文章主要介紹了axios如何利用promise無痛刷新token的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08