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 }