JS判斷傳入函數(shù)的參數(shù)是否為空(函數(shù)參數(shù)是否傳遞)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
我們?cè)诰帉?xiě)代碼的時(shí)候,有什么需要判斷函數(shù)有沒(méi)有傳參,方便我們進(jìn)行后續(xù)的操作,下面是具體的判斷是否傳參的幾種方法 一、通過(guò)undefined對(duì)比function a(x,y){ if(x==undefined){ x=100; } y=y==undefined?200:y; alert(x+y); } a(); 直接判斷x==undefined,函數(shù)中直接這樣就行,如果別的需要結(jié)合typeof(變量)=='undefined'來(lái)判斷參數(shù)有沒(méi)有定義。 二、通過(guò)||function fun(x,y){ x=x||0; y=y||1; console.log(x+y); } fun(); 就是判斷x是否存在,不存在則x=0,y不存在則為1 三、通過(guò)argumentfunction fun(x,y){ x=arguments[0]?arguments[0]:100; y=arguments[1]?arguments[1]:200; return x+y; } alert(fun()); alert(fun(1,2)); 分別輸出 300,3 四、形參 實(shí)參 解釋argumentfunction fn(a,b) { console.log(fn.length); //得到是 函數(shù)的形參的個(gè)數(shù) //console.log(arguments); console.log(arguments.length); // 得到的是實(shí)參的個(gè)數(shù) if(fn.length == arguments.length) { console.log(a+b); } else { console.error("對(duì)不起,您的參數(shù)不匹配,正確的參數(shù)個(gè)數(shù)為:" + fn.length); } //console.log(a+b); } fn(1,2); fn(1,2,3); 補(bǔ)充1,判斷參數(shù)是否傳遞如果我們定義了一個(gè)帶參數(shù)的方法,調(diào)用的時(shí)候這些參數(shù)可以全部傳遞、部分傳遞、甚至不傳遞。 // 帶兩個(gè)參數(shù)的方法 function test(a, b) { } // 方法調(diào)用 test(); test(0); test(0, 1); (2)如果在函數(shù)中想要知道這個(gè)參數(shù)是否傳遞,可以通過(guò)如下方式判斷(注意是 3 個(gè)等號(hào)) // 帶兩個(gè)參數(shù)的方法 function test(a, b) { if(a === undefined){ console.log("參數(shù)a沒(méi)有傳遞!"); } if(b === undefined){ console.log("參數(shù)b沒(méi)有傳遞!"); } } // 方法調(diào)用 test(0); 2,參數(shù)默認(rèn)值(1)當(dāng)函數(shù)的某個(gè)參數(shù)沒(méi)有傳遞時(shí),如果想要它有個(gè)默認(rèn)值,可以這么寫(xiě)。 // 帶兩個(gè)參數(shù)的方法 function test(a, b) { a = (a === undefined ? 1 : a); // a默認(rèn)值為1 b = (b === undefined ? 2 : b); // b默認(rèn)值為2 } 該文章在 2023/7/10 16:07:33 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |