函数的参数

函数传参

  ES6之前函数是无法给参数设置默认值的,而ES6支持了该特性。

  •  常见参数:
   数值 数组 对象 函数
function f(
     name,
     age=100,
     arr=[],
     obj={},
     call=function(){}
){
console.log(name);
     console.log(age);
     console.log(arr);
     console.log(obj);
     console.log(call('callback'));
 }
f("l",200,[1,2,3],{a:1},function(info){return info});

    

 

  • 参数可为函数返回值
function pi(){
    return 3.14;
}
           
function f(r,p=pi()){
    console.log(r*r*p);
}
f(10);   //314

 

  • 第一个参数保持为默认值,只传递往后的参数, 使用undefined占位
function f(name="li",age){
    console.log(name);
    console.log(age);
}
f(undefined,100);

  

 

 

 

  •  第二个参数使用第一个参数的值作默认值 
function f(x,y=x){
    console.log(x);//1
    console.log(y);//1
}
 f(1);

存在先后顺序,也就是说如果反过来  (y=x,x),x还没有赋值,是不可行的,

     

 

 

  • 结构变量有不定元素,函数参数也可以有不定参数 (不定参数之后不可再有参数)
function f(name,...other){
    console.log(name);//li
    console.log(other);//(2) [1, '男']
}

f("li",1,"男");

    同不定元素, ...other以数组形式返回

 

 name属性

  ES6提供name属性 用于获取函数名,以方便开发者,方便判断

 函数:      function f(){}   
表达式:      let f2=function(){}   
 对象:  
let obj={
    f3:function(){}
}
console.log(f.name);  //f
console.log(f2.name);  //f2
console.log(obj.f3.name);  //f3

匿名函数:

console.log((new Function()).name); //anonymous

 

 

posted @ 2021-11-25 21:34  十七日尾  阅读(38)  评论(0)    收藏  举报