js函数参数默认值
以前的写法,利用短路原则来写:
function haosy(name,age){ name=name||'小郝'; age=age||21; alert('读者你好,我是作者'+name+',芳龄'+age+'岁。'); } 调用: 情况一: haosy('王八蛋',20) 输出:读者你好,我是作者王八蛋,芳龄20岁。 情况二: haosy('王八蛋') 输出:读者你好,我是作者王八蛋,芳龄21岁。 情况三: haosy(null,22) 输出:读者你好,我是作者小郝,芳龄22岁。 情况四: haosy(); 输出:读者你好,我是作者小郝,芳龄21岁。
现在我们使用ES6给出的默认值写法。
1.基本用法
function haosy(name='小郝',age=21){ console.log('读者你好,我是作者'+name+',芳龄'+age+'岁。'); } haosy(); 输出:读者你好,我是作者小郝,芳龄21岁。 haosy('王八蛋',20); 输出:读者你好,我是作者王八蛋,芳龄20岁。 haosy('王八蛋') 输出:读者你好,我是作者王八蛋,芳龄21岁。 //TODO...
2.与解构赋值默认值结合
function haosy({name,age=21}){ console.log('读者你好,我是作者'+name+',芳龄'+age+'岁。'); } haosy({}); 输出:读者你好,我是作者小郝,芳龄21岁。 haosy({name:'王八蛋'}); 输出:读者你好,我是作者王八蛋,芳龄21岁。 haosy({name:'王八蛋',age:20}); 输出:读者你好,我是作者王八蛋,芳龄20岁。 //TODO...
与基本用法的区别:
优点:这种写法在传入多个形参时可以不按顺序写,会方便;
缺点:如果不传入参数的时候,每次都要 haosy({}) 要写 {} 比较麻烦,因此,我们可以再设置一次默认值。
3.双重默认值
function haosy({name='小郝',age=21}={}){ console.log('读者你好,我是作者'+name+',芳龄'+age+'岁。'); } haosy(); 输出:读者你好,我是作者小郝,芳龄21岁。 haosy({name:'王八蛋'}); 输出:读者你好,我是作者王八蛋,芳龄21岁。 haosy({name:'王八蛋',age:20}); 输出:读者你好,我是作者王八蛋,芳龄20岁。