ES6 函数扩展

<script>
    // function add(x,y){
    //     // 参数默认值,如果用户输入就是输入的值,否则是5000
    //     y=y||5000;
    //     console.log(y)
    // }
    // add(1,7000)

// es6默认参数的概念。y如果有值的话,实参为准。如果没有实参,默认为10
若y=0为false 使用5000
       console.log(y);
    };
 function add(x,y=10){
    
    add(10)
  // undefined为空相当于没有传递参数
   add(10,undefined);
   add(10,100);

★函数参数扩展,相当于解构   
  // let[x,y]=[1,2] 
//    function fn([x,y]){
//        console.log(x,y)
//    }
//    fn([1,3])

★箭头函数 去除function  ()和{}中间加=>
//    var fn=(x,y)=>{
//     console.log(x,y)
//    }
//    fn(1,3)

   setTimeout(()=>{
     console.log(111)
   },1000)

★如果函数体,只有一句代码{}也可以省略,但是如果这句代码包含return。去除return 
 
//  var fn=(x,y)=>console.log(x+y);
var fn=(x,y)=>x+y
 console.log(fn(34,4))

★箭头函数,没有arguments概念,有了rest剩余参数的概念。
//  var add1=(...rest)=>{
//      console.log(rest)
//  }
//  var add1=(...a)=>{
//      console.log(a)
//  }
var stu={
    name:'zs'
}
var add1=(x,y,...a)=>{
    console.log(this)
     console.log(a)
     a.unshift(x,y);//从a数组前面插入x,y,跟push相反
     console.log(a)
 }
 add1(1,2,3,4)
 add1.call(stu,1,2)//箭头函数不能使用call指向对象stu,箭头函数定义时指向谁就是谁,无法更改
★箭头函数中的this,指向的是定义的时候所在的对象,不是使用的时候所在的对象
</script>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。