es6——函数扩展

版权声明:转发博客 请注明出处 否则必究 https://blog.csdn.net/lucky541788/article/details/82708841

1.形参设置默认值

es5

       {
            function sum1(num1, num2) {
                num1 = num1 || 10;
                num2 = num2 || 10;
                console.log(num1 + num2);
            }

            sum1(20, 30);//50
            sum1();//20
        }

es6(好处:简洁)

        {
            function sum2(num1 = 10, num2 = 10) {
                console.log(num1 + num2);
            }

            sum2(20, 30);//50
            sum2();//20
        }

2.参数形式 结合 延展操作符

es5

        {
            function sum3() {
                let result = 0;
                for (let value of arguments) {
                    result += value;
                }
                console.log(result);
            }

            sum3(10,20,30);//60
        }

es6(好处:可以多样化定义传入参数,而不是全在arguments里不好区分)

      {
            function sum4(name,sex,...nums) {
                let result = 0;
                for (let value of nums) {
                    result += value;
                }
                console.log(result);
                console.log(name,sex);
            }

            sum4('lucy','man',10,20,30,100);//160; lucy man
        }

3.箭头函数 () => {}

        {
            let sum = (num1, num2) => {
                console.log(num1 + num2);
            };

            sum(100, 200);//300

            let nameArr = ['bob', 'lucy', 'tom'];
            nameArr.forEach((value, index) => {
                console.log(index + ':' + value);//0:bob; 1:lucy; 2:tom
            })
        }

无需考虑this指针不明确

     {
            //希望指向obj
            function demo1() {
                setTimeout(function () {
                    console.log(this);//Window
                }, 1000);
            }

            let obj = {};
            demo1.call(obj);
        }
        {
            //解决方法
            function demo2() {
                setTimeout(() => {
                    console.log(this);//{}
                }, 1000);
            }

            let obj = {};
            demo2.call(obj);
        }

猜你喜欢

转载自blog.csdn.net/lucky541788/article/details/82708841