JS函數(shù)arguments數(shù)組獲得實(shí)際傳參數(shù)個(gè)數(shù)的實(shí)現(xiàn)方法
JS與PHP在函數(shù)傳參方面有點(diǎn)不同,PHP形參與實(shí)參個(gè)數(shù)要匹配,而JS就靈活多了,可以隨意傳參,實(shí)參比形參少或多都不會(huì)報(bào)錯(cuò)。
實(shí)參比形參多不會(huì)報(bào)錯(cuò)
function say(a){ alert(a); } say('瓊臺(tái)博客','WEB技術(shù)博客');
執(zhí)行結(jié)果
我們?cè)賮?lái)看看形參比實(shí)參多的結(jié)果
function say(a,b){ alert('a 的值是 '+a+'\nb 的值是 '+b); } say('瓊臺(tái)博客');
執(zhí)行結(jié)果
a 對(duì)應(yīng)第一個(gè)實(shí)參“瓊臺(tái)博客”,b 沒有對(duì)應(yīng)的實(shí)參所以值為undefined
arguments對(duì)象
其實(shí)有時(shí)候我們?cè)诔绦蛟O(shè)計(jì)比較復(fù)雜的時(shí)候并不指定參數(shù)個(gè)數(shù),都是靈活運(yùn)用。在函數(shù)里有一個(gè)數(shù)組arguments就是專門存儲(chǔ)實(shí)參數(shù)組的,通過arguments我們就可以知道實(shí)參個(gè)數(shù)以及值。
function arg(){ var str = '總共傳了'+arguments.length+'個(gè)參數(shù)\n'; for(var i=0;i<arguments.length;i++){ str += '第'+(i+1)+'個(gè)參數(shù)值:'+arguments[i]+'\n'; } alert(str); } arg('瓊臺(tái)博客','PHP博客','WEB技術(shù)博客');
執(zhí)行結(jié)果
在以上例子中,我們定義函數(shù)arg并沒有給它指定形參,而是使用arguments對(duì)象接收實(shí)參,非常靈活。
比如我們可以利用它來(lái)計(jì)算出一組數(shù)字里最小的數(shù)字,不管這組數(shù)字有多少個(gè)。如以下代碼:
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 四個(gè)數(shù)對(duì)比結(jié)果
我們?cè)诩尤雰蓚€(gè)數(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 六個(gè)數(shù)對(duì)比結(jié)果
根據(jù)兩次運(yùn)算結(jié)果,我們發(fā)現(xiàn)無(wú)論我們傳進(jìn)多少個(gè)數(shù)字,都能正確比對(duì)結(jié)果。arguments一般用在實(shí)參個(gè)數(shù)不定的地方,比如上邊的例子,你可以傳5個(gè)數(shù)進(jìn)去比較,也可以傳100個(gè)數(shù)進(jìn)去比較都可以。
以上這篇JS函數(shù)arguments數(shù)組獲得實(shí)際傳參數(shù)個(gè)數(shù)的實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JS 驗(yàn)證碼功能的三種實(shí)現(xiàn)方式
這篇文章主要介紹了驗(yàn)證碼功能的三種實(shí)現(xiàn)方式,分為數(shù)字短信驗(yàn)證碼,圖形驗(yàn)證碼,滑動(dòng)驗(yàn)證碼,本文通過示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11解決微信授權(quán)成功后點(diǎn)擊按返回鍵出現(xiàn)空白頁(yè)和報(bào)錯(cuò)的問題
這篇文章主要介紹了解決微信授權(quán)成功后點(diǎn)擊按返回鍵出現(xiàn)空白頁(yè)和報(bào)錯(cuò)的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06JavaScript實(shí)現(xiàn)函數(shù)返回多個(gè)值的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)函數(shù)返回多個(gè)值的方法,涉及javascript字典類型的使用技巧,需要的朋友可以參考下2015-06-06js對(duì)列表中第一個(gè)值處理與jsp頁(yè)面對(duì)列表中第一個(gè)值處理的區(qū)別詳解
本文是對(duì)js對(duì)列表中第一個(gè)值處理與jsp頁(yè)面對(duì)列表中第一個(gè)值處理的區(qū)別進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來(lái)參考下,希望對(duì)大家有所幫助2013-11-11詳解webpack 配合babel 將es6轉(zhuǎn)成es5 超簡(jiǎn)單實(shí)例
本篇文章主要介紹了詳解webpack 配合babel 將es6轉(zhuǎn)成es5 超簡(jiǎn)單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05JS如何根據(jù)條件取出數(shù)組中對(duì)應(yīng)項(xiàng)
這篇文章主要介紹了JS根據(jù)條件取出數(shù)組中對(duì)應(yīng)項(xiàng),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03axios如何利用promise無(wú)痛刷新token的實(shí)現(xiàn)方法
這篇文章主要介紹了axios如何利用promise無(wú)痛刷新token的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08