js函数-参数默认值

1. 在es6之前必须通过函数内部实现

就像以下的几种情况:

function example(a,b){
    var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1
    var b = arguments[1] ? arguments[1] : 2;//设置参数b的默认值为2
    return a+b;
}
function example(name,age){
    name=name||'貂蝉';
    age=age||21;
    alert('你好!我是'+name+',今年'+age+'岁。');
}
function example(name,age){
    if(!name){name='貂蝉';}
    if(!age){age=21;}
    alert('你好!我是'+name+',今年'+age+'岁。');
}

2. 在ES6中可以像其它编程语言那样直接使用默认参数了

  在class的构造器中使用默认参数

1   class Person {
2     constructor(name="", age=18) {
3       this.name = name
4       this.age = age
5     }
6   }
7   const P1 = new Person()
8   console.log(P1.name) //

  构造函数中,(适用于项目中有一个古老的方法,但是现在要求根据某个条件来改变这个方法的逻辑,则只需要给这个函数一个默认值即可,不需要通篇找到这个方法去改)

 1   isHandle(false) //参数为false,则实参flag接收的为false
 2 
 3   isHandle()
 4 
 5   function isHandle(flag = true) { //默认为true,调用函数时不传默认为true,
 6     if(flag) {
 7       //flag == true 时的逻辑
 8     } else {
 9        //flag == false 时的逻辑
10     }
11   }

 

posted @ 2021-07-12 16:03  顺·  阅读(926)  评论(0编辑  收藏  举报