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

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

一、通过undefined对比

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

直接判断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
}

注意:不建议使用下面这种方式,因为如果参数为 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中函数传参判断内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • js判断出两个字符串最大子串的函数实现方法

    如下所示: <!DOCTYPE html> <html> <head> <title></title> </head> <script type="text/javascript"> function search(str1,str2) { var i=j=k=a=jk=kk=0; var m=str1.length; var n=str2.length; var index=0; var maxlen

  • js判断传入时间和当前时间大小实例(超简单)

    实例如下: //判断时间是否过期 function judgeTime(time){ var strtime = time.replace("/-/g", "/");//时间转换 //时间 var date1=new Date(strtime); //现在时间 var date2=new Date(); //判断时间是否过期 return date1<date2?true:false; } 以上这篇js判断传入时间和当前时间大小实例(超简单)就是小编分享给大家

  • js判断登陆用户名及密码是否为空的简单实例

    js判断登陆用户名及密码是否为空的简单实例 <script type="text/javascript"> // 验证输入不为空的脚本代码 function checkForm(form) { if(form.username.value == "") { alert("用户名不能为空!"); form.username.focus(); return false; } if(form.password.value == "

  • js判断是否含有GBK以外的字符的函数

    boolean isGBK(String s) throws UnsupportedEncodingException { if(s.equals(new String(s.getBytes("gbk")))) return true; else return false; }

  • js判断输入是否为正整数、浮点数等数字的函数代码

    1.下面列出了一些判读数值类型的正则表达式 复制代码 代码如下: /^\d+$/ //非负整数(正整数 + 0) /^[0-9]*[1-9][0-9]*$/ //正整数 /^((-\d+)|(0+))$/ //非正整数(负整数 + 0) /^-[0-9]*[1-9][0-9]*$/ //负整数 /^-?\d+$/ //整数 /^\d+(\.\d+)?$/ //非负浮点数(正浮点数 + 0) /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0

  • JS前端面试数组扁平化手写flat函数示例

    目录 前言 题目 实现扁平化的方法 封装 flatten 1. ES6 flat 2. toString 3. 使用正则替换 4. 循环递归 4.1 循环 + concat + push 4.2 增加参数控制扁平化深度 4.3 巧用 reduce 4.4 使用 Generator 函数 5. 使用堆栈 stack 避免递归 6.while 循环+ some方法 前言 由于上半年参加了校招的技术面试, 前前后后面了20多个人了, 每次面试都会让应聘者手写一下数组扁平化flat(),但是发现居然没有

  • js判断输入是否为数字的具体实例

    复制代码 代码如下: <html xmlns="http://www.3lian.com/"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>js判断输入是否为数字</title><script language="javascript教程"&g

  • 利用JS判断字符串是否含有数字与特殊字符的方法小结

    前言 本文主要介绍的是利用JS判断字符串是否含有数字与特殊字符的方法,文中有几种不同的方法,包括普通的JS验证法.正则表达式法,另外还有判断是否为浮点数的js函数,在最后还将简要介绍下isNAN函数的使用方法和例子,来一起学习学习吧. 一.正则表达式方法判断是否为数字,包括判断正整数: function checkRate(input) { var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字,//若判断正整数,则后边是:/^[1-9]+[0-9]*]*$/ if

  • JS判断字符串包含的方法

    本文实例讲述了JS判断字符串包含的方法.分享给大家供大家参考.具体如下: 1.  例子: var tempStr = "tempText" ; var bool = tempStr.indexOf("Texxt"); //返回大于等于0的整数值,若不包含"Text"则返回"-1. if(bool>0){ document.write("包含字符串"); }else{ document.write("不

  • JS判断字符串变量是否含有某个字串的实现方法

    JS判断字符串变量是否含有某个字串的实现方法 varCts = "bblText"; if(Cts.indexOf("Text") > 0 ){ alert('Cts中包含Text字符串'); } indexOf用法: 返回 String 对象内第一次出现子字符串的字符位置. strObj.indexOf(subString[, startIndex]) 参数 strObj 必选项.String 对象或文字. subString 必选项.要在 String 对

随机推荐