JavaScript判断函数参数是否传递的多种方法

作者:纸飞机

时间:2026-10-26

浏览:347

本文详细介绍JavaScript中判断函数参数是否传递的几种常见方法。包括使用undefined直接对比、利用逻辑或运算符||设置默认值、通过arguments对象获取实参个数以及ES6语法中的默认参数赋值。文章提供了具体代码示例,对比了各方法的优缺点及适用场景,帮助开发者根据实际需求选择最合适的参数检测方案。

文章目录

在编写JavaScript代码时,经常需要判断函数是否接收到了参数,以便执行后续逻辑。以下是几种常用的判断参数传递情况的方法。

一、通过undefined对比

function jb51(x,y){
            if(x==undefined){
                x=100;
            }
            y=y==undefined?200:y;
            alert(x+y);
        }
        jb51();

可以直接判断变量是否等于undefined。在函数内部直接使用x==undefined即可。对于其他变量,若需判断其是否已定义,可结合typeof(变量)=='undefined'来进行检测。

二、通过||

function fun(x,y){
            x=x||0;
            y=y||1;
            console.log(x+y);
        }
        fun();

该方法用于判断变量是否存在,若不存在则赋予默认值。例如,若x不存在则将其赋值为0,若y不存在则赋值为1。

三、通过arguments

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));

使用arguments对象可以分别获取传入的参数值,例如上述代码输出结果为300和3。

四、形参与实参及arguments解释

    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);

(此处为效果图展示)

一、通过undefined对比

补充内容

1,判断参数是否传递

当定义一个带有参数的方法时,调用该方法时可以传递所有参数、部分参数,也可以不传递任何参数。

// 带两个参数的方法
function test(a, b) {
}
// 方法调用
test();
test(0);
test(0, 1);

(2)若需在函数内部判断某个参数是否被传递,可采用以下方式进行检测(注意此处需使用三个等号===):

// 带两个参数的方法
function test(a, b) {
  if(a === undefined){
    console.log("参数a没有传递!");
  }
  if(b === undefined){
    console.log("参数b没有传递!");
  }
}
// 方法调用
test(0);

(此处为效果图展示)

一、通过undefined对比

2,参数默认值

(1)当函数中的某个参数未被传递时,若希望其拥有默认值,可采用如下写法:

// 带两个参数的方法
function test(a, b) {
  a = (a === undefined ? 1 : a); // a默认值为1
  b = (b === undefined ? 2 : b); // b默认值为2
}

注意:不建议使用类似a = a | 1这种方式,因为当参数本身为0时会导致逻辑错误。

// 带两个参数的方法
function test(a, b) {
  a = a | 1; // a默认值为1
  b = b | 2; // b默认值为2
}

(2)如果使用ES6语法,可以直接采用以下方式定义默认参数:

// 带两个参数的方法
function test(a = 1, b = 2) {
}

到此结束关于JS判断传入函数参数是否为空(即函数参数是否传递)的介绍。如需了解更多相关js中函数传参判断内容,请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章