返回 导航

其他

hangge.com

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

作者:hangge | 2019-02-28 08:27

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) {
}
评论

全部评论(0)

回到顶部