美文网首页
es6--强大的函数

es6--强大的函数

作者: lvyweb | 来源:发表于2021-06-09 07:09 被阅读0次

1. 带参数的默认值的函数

  // es5的写法
        function add(a,b){
            a = a||10;
            b = b||20;
            return a+b;
        }
        add();
        console.log(add());//30
        // --------------------------
        // es6中
        function add(a=10,b=20){
            return a+b;
        }
        console.log(add());//30
        console.log(add(30))//50  传入一个值,相当于传入了a ,b使用默认值

2. 默认的表达式也可以是一个函数

     function add(a,b= getVal(5)){
            return a+b;
        }
        function getVal(val){
            return val+5;
        }

        console.log(add(1));//11

3.也可以是一个不具名函数

   // es5写法:遍历比较麻烦
   function pick(obj){
            let result = Object.create(null);//相当于[];
            for(let i = 1; i<arguments.length;i++){
                // console.log(arguments[i])
                result[arguments[i]] = obj[arguments[i]]
            }
            return result;
        }
        let book ={
            'title':'es6教程',
            'author':'小玉米',
            'year':'2021',
        }
        let bookData = pick(book,'author','year');
        console.log(bookData);//[author: "小玉米", year: "2021"]

es6写法
提供一个方法叫做剩余参数
剩余参数:是由三个点...和一个紧跟着具名参数指定,语法...keys

        function pick(obj,...keys){ //必须放在最后一个参数那里
            //  console.log(keys);//["author", "year"]
            let result = {};
            for(let i = 0; i<keys.length;i++){
                result[keys[i]] = obj[keys[i]];
            }
            return result;


        }
        let book ={
            'title':'es6教程',
            'author':'小玉米',
            'year':'2021',
        }
        let bookData = pick(book,'author','year');
        console.log(bookData);

剩余参数解决了arguments问题

更简单的例子

 function checkArgs(...args){
            console.log(args);//["a", "b", "c", "d"] 真实的数组
            console.log(arguments);//Arguments(4) ["a", "b", "c", "d", callee: (...), Symbol(Symbol.iterator): ƒ]   伪数组
        }
 checkArgs('a','b','c','d')

4. 扩展运算符 ...

剩余运算符:把多个独立合并到一个数组中(一般用于函数的形参上)
扩展运算符:将一个数组分隔,并将各个项作为分离的参数

//处理数组中最大函数
const arr =[12,10,5,6,8,9];
// es5方法
console.log(Math.max.apply(null,arr));//12
// es6方法:使用扩展运算符更方便
console.log(Math.max(...arr));//12

相关文章

  • es6--强大的函数

    1. 带参数的默认值的函数 2. 默认的表达式也可以是一个函数 3.也可以是一个不具名函数 es6写法提供一个方法...

  • 深入理解ES6--解构

    深入理解ES6--解构

  • ES6--函数的扩展

    函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 上面代码检查函数l...

  • ES6--(3)函数

    带参数默认值的函数 JS 函数的独特之处是可以接受任意数量的参数,而无视函数声明处的参数数量。 在 ES5 中模拟...

  • ES6--函数扩展

    函数新增特性 函数默认值,rest参数,扩展运算符,箭头函数,this绑定,尾调用 函数参数的默认值 rest参数...

  • ES6--箭头函数

    箭头函数 解释 箭头函数就是个简写形式的函数表达式,并且它拥有词法作用域的this值。另箭头函数总是匿名的。 用法...

  • es6--箭头函数

    概念:使用=>来定义,function(){}等于()=>{} es6的箭头函数是没有this指向,箭头函数内部t...

  • es6--函数新增

    函数的扩展 函数参数设置默认值...rest参数箭头函数Promise函数Generator 函数async函数 ...

  • es6--箭头函数的注意点

    箭头函数有几个使用注意点。 (1)函数体内的this对象,是定义箭头函数时所在的执行环境中的this对象,切记 (...

  • 2019-10-21Vue脚手架安装命令(mac版)

    安装脚手架的命令(终端) 项目安装(终端安装) babel转译es6-->es5 -安装 babel babel ...

网友评论

      本文标题:es6--强大的函数

      本文链接:https://www.haomeiwen.com/subject/kgnheltx.html