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

 

posted @ 2021-11-24 20:17  翟莹萍  阅读(34)  评论(0编辑  收藏  举报