ES6 箭头函数+...剩余参数+...扩展运算符

箭头函数

箭头 =>
函数

在ES6中,可以使用箭头函数代替常规函数
A.参数列表

//1.没有参数
        //es5
        // function fn() {
        //     console.log('hello world');
        // };        
        // var fn = function () {
        //     console.log('hello world');
        // };

        //es6
        // let fn = () => {
        //     console.log('hell world');
        // }
        // fn();
        //2. 一个参数
        // let fn = function (a) {
        //     console.log(a);
        // }
        //es6
        // let fn = (a) => {
        //     console.log(a);
        // }
        //若只有一个参数,则可以省略()   特殊情况
        //简化为:
        // let fn=a=>{
        //     console.log(a);;
        // }
        // fn(10);
        //3.两个参数
        // let fn=function(a,b){
        //     console.log(a,b);
        // }
        // //es6
        // let fn=(a,b)=>{
        //     console.log(a,b);
        // }
        //多参
        let fn=(a,b,c)=>{
            console.log(a+b+c);
        }
        fn(10,2,30);

B.函数返回值

//函数的返回值
        //函数体有返回值
        //1.函数体有多条语句组成
        // let fn = function (a, b) {
        //     console.log(a, b);
        //     return a + b;
        // };
        //es6
        // let fn=(a,b)=>{
        //     console.log(a,b);
        //     return a+b;
        // }

        // console.log(fn(10,20));
        //2.函数体只有一句,且是返回值语句,可以省略{},return
        // let fn = function (a, b) {
        //     return a + b;
        // }
        //es6  普通改造
        // let fn = (a, b) => {
        //     return a + b;
        // }
        // console.log(fn(10, 20));
        //可以简化
        let fn = (a, b) => a + b;
        console.log(fn(10, 20));
        let fn1=a=>a;

特殊情况:函数只有一句,return语句,返回值是对象:
     // let fn=()=>{name:'jack',age:20};//认为{}是函数体的{}
        //方案一:
        // let fn = () => {
        //     return {
        //         name: 'jack',
        //         age: 20
        //     };
        // };

        //方案二:
        let fn=()=>({name:'jack',age:20});//将对象看做一个整体
        // let fn=()=>[10,20];
        console.log(fn());

普通函数与箭头函数的区别:

1)箭头函数不能使用arguments,(使用rest参数)
2)箭头函数不能作为构造函数
3)箭头函数不能作为事件函数(this指向)
4)对象的方法也不能使用箭头函数(this指向)
5)箭头函数不能通过call和apply来改变this指向
6)ES5中this指向调用者,ES6中this指向上下文对象(父作用域对象的this指向)(定义时的作用域对象)

剩余参数(rest参数)

rest参数,用法:…变量名
注意:剩余参数,需要出现在函数的参数位置
功能:将接收到参数封装为一个数组

注意:rest参数只能出现在参数列表中的最后一个位置

扩展运算符

用法: …变量名
功能:它是剩余参数的逆运算(打散)
它可以打散所有的可遍历(iterator)的集合,例如:数组、对象、字符串、DOM集合、Set、Map…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值