ES6 05函数的参数
要点:1.参数默认值 2.name属性
一.参数默认值
1.ES6之前函数是无法给参数设置默认值,现在支持
function fn(name, age=100, arr=[], obj={}, callback=function(){}){ // 参数1是必须传递 // 其余参数 有默认值,可选传递 console.log(name); console.log(arr); console.log(obj); console.log(callback('callback')); } fn('Mr.Lee',200,[1,2,3],{key:1},function(info){ return info; });
2.函数参数的默认值,也可以是另一个函数的返回值
function pi(){ return 3.14; } function fn(r,p=pi()){ //pi()返回值交给p console.log(r*r*p); } fn(10);
3.如果只想传递第二个往后的参数,参数一保持默认值,可用undefined占位
function fn(name='Mr.Lee',age){ //null,空都不行 console.log(name); console.log(age); } fn(undefined,100);
4.支持参数二使用参数一的值作为默认值,反之不可以
function fn(x,y=x){ //(y=x,x)错误 console.log(y); } fn(1);
5.解构变量有不定元素,函数的参数也可以有不定参数
function fn(name,...other){ //不定参数之后不可再有参数 console.log(other); } fn('Mr.Lee',100,'男');
二.name属性
1.ES6提供了一个name属性用于获取函数名,方便开发者
function fn(){} let fn2 =function(){}; let obj={ fn3:function(){} }; console.log(fn.name); console.log(fn2.name); console.log(obj.fn3.name); console.log((new Function()).name); //匿名函数anonymous