04 函数之扩展运算符、箭头函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <script>
        //1.扩展运算符
        //剩余运算符:把多个独立的合并到一个数组中
        //扩展运算符:将一个数组分割,并将多个项作为分离的参数传给函数...具名参数
        // const maxNum = Math.max(20,30);

        //处理数组中的最大值
        //es5 使用apply
        const arr = [12,3,44,5,565,67,44]
        console.log(Math.max.apply(null,arr));//565

        //es6 使用扩展运算法
        console.log(Math.max(...arr))//565

        //es6的箭头函数
        //使用=>来定义 function(){}等于()=>{}

        let add = function (a,b) {
            return a + b;
        }

        // let add = (a,b)=>{
        //     return a+b;
        // }
        console.log(add(10,20))
        //以上更简洁
        // let add = (a,b)=>(a+b);

        //一个参数
        // let add = val =>{
        //     return val+5;
        // }
        //以上更简洁
        // let add = val => (val+5);


        //没有参数
        let fn = ()=> 'hello world' + 123;
        console.log(fn);//hello world123

        //返回一个对象
        let getObj = id =>({id:id,name:'walter'});
        console.log(getObj(1))//{id:id,name:'walter'}
        console.log(getObj)

        //es6 箭头函数没有this绑定,箭头函数内部this值只能通过查找上面作用域链来确定,一旦使用箭头函数,就没有作用域链,直接查找最上面的对象
        //es5中的this指向:取决于调用该函数的上下文对象

        //使用箭头函数的注意事项
        //1.使用箭头函数,函数内部没有arguments
        let getVal = (a,b) => {
            console.log(arguments);//报错
            return a+b;
        }

        //2.箭头函数不能使用new关键字来实例化对象
        let Person = ()=>{

        };
        //function函数 也是一个对象,但是箭头函数不是一个对象,它其实就是一个语法糖
        let p = new Person();
        console.log(p)//直接报错
    </script>
</body>
</html>
posted @ 2020-12-28 17:03  *!Walter!*  阅读(76)  评论(0编辑  收藏  举报