ECMAScript6--8.函数扩展

2017-10-20  本文已影响31人  飞菲fly

1.函数新增特性

2.函数参数默认值
--默认值后面不能在有没有默认值的变量;

{
    function test(x,y='world'){
        console.log('默认值',x,y);
    }
    
    /*
    function test(x,y='world',c){
        //c没有默认值是错误的写法;
    }
    */
    
    /*
    function test(x,y='world',c='test'){
        //这样写可以;
    }
    */
    
    
    test('Hello'); //默认值 Hello world
    test('Hello','hill');//默认值 Hello hill
}

3.作用域的概念

{
    let x ='test';

    //参数y=x;这个x取的就是前面的参数x;
    function test2(x,y=x){
        console.log('作用域',x,y);//作用域 hill hill
    }
    
    /*
    function test2(c,y=x){
        console.log('作用域:',c,y); //作用域:hill test
    }
    */
    
    test2('hill');
    //test2(); //作用域:undefined undefined
}

4.rest参数

{
    function test3(...arg){
        for(let v of arg){
            console.log('rest', v);
        }
    }
    
    test3(1,2,3,4,'a'); 
    //rest 1 
    //rest 2
    //rest 3 
    //rest 4 
    //rest a
}

5.扩展运算符

{
    //把数组转成了离散的值;
    console.log(...[1,2,4]); //1 2 4
    
    console.log('a',...[1,2,4]); //a 1 2 4
}

6.箭头函数(注意this绑定,有时候适合用箭头函数有时候不适合)

{
    //let arrow(函数名) = v(函数参数) => v*2(函数返回值)
    let arrow = v => v*2;  
   
    //没有参数
    let arrow2 = () => 5;
   
    console.log('arrow',arrow(3)); // arrow 6
    consoel.log(arrow2()); //5
}

7.尾调用:存在于函数式编程;

上一篇下一篇

猜你喜欢

热点阅读