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+'岁。'); }
function example(setting){ var defaultSetting={ name:'貂蝉', age:'30', sex:'女', phone:'13611876347', QQ:'10086', birthday:'1949.10.01' }; $.extend(defaultSetting,settings); var message='姓名:'+defaultSetting.name +',性别:'+defaultSetting.sex +',年龄:'+defaultSetting.age +',电话:'+defaultSetting.phone +',QQ:'+defaultSetting.QQ +',生日:'+defaultSetting.birthday +'。'; alert(message); }
example({ name:'王昭君', sex:'女', phone:'10089' });
2、ES6中可以像其它编程语言那样直接使用默认参数了
function myFunction(x = 1, y = 2, z = 3) { console.log(x, y, z); // Outputs "1 7 9" } myFunction(undefined,7,9);