JS判斷傳入函數(shù)的參數(shù)是否為空(函數(shù)參數(shù)是否傳遞)
我們?cè)诰帉懘a的時(shí)候,有什么需要判斷函數(shù)有沒有傳參,方便我們進(jìn)行后續(xù)的操作,下面是具體的判斷是否傳參的幾種方法
一、通過undefined對(duì)比
function jb51(x,y){
if(x==undefined){
x=100;
}
y=y==undefined?200:y;
alert(x+y);
}
jb51();直接判斷x==undefined,函數(shù)中直接這樣就行,如果別的需要結(jié)合typeof(變量)=='undefined'來判斷參數(shù)有沒有定義。
二、通過||
function fun(x,y){
x=x||0;
y=y||1;
console.log(x+y);
}
fun();就是判斷x是否存在,不存在則x=0,y不存在則為1
三、通過argument
function 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í)參 解釋argument
function 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ù)是否傳遞,可以通過如下方式判斷(注意是 3 個(gè)等號(hào))
// 帶兩個(gè)參數(shù)的方法
function test(a, b) {
if(a === undefined){
console.log("參數(shù)a沒有傳遞!");
}
if(b === undefined){
console.log("參數(shù)b沒有傳遞!");
}
}
// 方法調(diào)用
test(0);效果圖

2,參數(shù)默認(rèn)值
(1)當(dāng)函數(shù)的某個(gè)參數(shù)沒有傳遞時(shí),如果想要它有個(gè)默認(rèn)值,可以這么寫。
// 帶兩個(gè)參數(shù)的方法
function test(a, b) {
a = (a === undefined ? 1 : a); // a默認(rèn)值為1
b = (b === undefined ? 2 : b); // b默認(rèn)值為2
}注意:不建議使用下面這種方式,因?yàn)槿绻麉?shù)為 0 的話會(huì)出問題。
// 帶兩個(gè)參數(shù)的方法
function?test(a, b) {
??a = a | 1;?// a默認(rèn)值為1
??b = b | 2;?// b默認(rèn)值為2
}(2)如果用 ES6 我們可以直接這么寫:
// 帶兩個(gè)參數(shù)的方法
function test(a = 1, b = 2) {
}到此這篇關(guān)于JS判斷傳入函數(shù)的參數(shù)是否為空(函數(shù)參數(shù)是否傳遞)的文章就介紹到這了,更多相關(guān)js中函數(shù)傳參判斷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談Webpack4 plugins 實(shí)現(xiàn)原理
在wabpack 核心功能除了loader應(yīng)該就是plugins插件了,本文主要介紹了Webpack4 plugins 實(shí)現(xiàn)原理,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
cnblogs csdn 代碼運(yùn)行框?qū)崿F(xiàn)代碼
大家用cnblogs,csdn博客發(fā)布技術(shù)文檔的時(shí)候,可以用下面的代碼實(shí)現(xiàn)運(yùn)行功能。當(dāng)然大家看了源碼就會(huì)發(fā)現(xiàn)其實(shí)方法還有很多。有更好的方法就發(fā)布一下啊。2009-11-11
文章或博客自動(dòng)生成章節(jié)目錄索引(支持三級(jí))的實(shí)現(xiàn)代碼
一個(gè)好的博文除了博文的質(zhì)量要好以外,好的組織結(jié)構(gòu)也能讓讀者閱讀的更加舒服與方便,我看很多網(wǎng)站里面有一些園友的博文都是分章節(jié)的,并且在博文的前面都帶有章節(jié)的目錄索引,點(diǎn)擊索引之后會(huì)跳轉(zhuǎn)到相應(yīng)的章節(jié)閱讀2020-05-05
JavaScript中常見的字符串操作函數(shù)及用法匯總
這篇文章主要介紹了JavaScript中常見的字符串操作函數(shù)及用法,實(shí)例匯總了javascript常見的字符串轉(zhuǎn)換、分割、查詢、替換等技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05
uniapp改變底部安全區(qū)頂部手機(jī)信號(hào)時(shí)間電池欄顏色樣式
這篇文章主要為大家介紹了uniapp改變底部安全區(qū)頂部手機(jī)信號(hào)時(shí)間電池欄顏色樣式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
基于uni-app開發(fā)刻度尺組件的實(shí)現(xiàn)示例
本文主要介紹了基于uni-app開發(fā)刻度尺組件的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
webpack 1.x升級(jí)過程中的踩坑總結(jié)大全
webpack1已結(jié)不再維護(hù)了,官方在主推webpack2,最近在升級(jí)webpack過程中遇到了不少的問題,所以下面這篇文章主要給大家總結(jié)了一些在webpack 1.x升級(jí)過程中的遇到的坑,以及詳細(xì)的解決方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08
javascript寫的異步加載js文件函數(shù)(支持?jǐn)?shù)組傳參)
這篇文章主要介紹了javascript寫的異步加載js文件函數(shù),同時(shí)支持單個(gè)文件和多個(gè)文件(數(shù)組傳參),但不兼容IE6,需要的朋友可以參考下2014-06-06
高效的獲取當(dāng)前元素是父元素的第幾個(gè)子元素
例如處理事件的時(shí)候,有時(shí)候需要知道當(dāng)前點(diǎn)擊的是第幾個(gè)子節(jié)點(diǎn),而HTML DOM本身并沒有直接提供相應(yīng)的屬性,需要自己來計(jì)算。感興趣的朋友可以了解下本文2013-10-10

