LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

JS判断传入函数的参数是否为空(函数参数是否传递)

freeflydom
2023年7月10日 16:7 本文热度 272

我们在编写代码的时候,有什么需要判断函数有没有传参,方便我们进行后续的操作,下面是具体的判断是否传参的几种方法

一、通过undefined对比

function a(x,y){

if(x==undefined){

x=100;

}

y=y==undefined?200:y;

alert(x+y);

}

a();


直接判断x==undefined,函数中直接这样就行,如果别的需要结合typeof(变量)=='undefined'来判断参数有没有定义。

二、通过||

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

四、形参 实参 解释argument

    function fn(a,b)

    {

        console.log(fn.length); //得到是 函数的形参的个数

        //console.log(arguments);

        console.log(arguments.length); // 得到的是实参的个数

        if(fn.length == arguments.length)

        {

            console.log(a+b);

        }

        else

        {

            console.error("对不起,您的参数不匹配,正确的参数个数为:" + fn.length);

        }

        //console.log(a+b);

    }

    fn(1,2);

    fn(1,2,3);


补充

1,判断参数是否传递

如果我们定义了一个带参数的方法,调用的时候这些参数可以全部传递、部分传递、甚至不传递。

// 带两个参数的方法

function test(a, b) {

}

// 方法调用

test();

test(0);

test(0, 1);

(2)如果在函数中想要知道这个参数是否传递,可以通过如下方式判断(注意是 3 个等号)

// 带两个参数的方法

function test(a, b) {

  if(a === undefined){

    console.log("参数a没有传递!");

  }

  if(b === undefined){

    console.log("参数b没有传递!");

  }

}

// 方法调用

test(0);

2,参数默认值

(1)当函数的某个参数没有传递时,如果想要它有个默认值,可以这么写。

// 带两个参数的方法

function test(a, b) {

  a = (a === undefined ? 1 : a); // a默认值为1

  b = (b === undefined ? 2 : b); // b默认值为2

}


该文章在 2023/7/10 16:07:33 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved