箭头函数及参数、name、length属性

2019-06-21  本文已影响0人  关耳木南
<script type="text/javascript">
    function fn(){
        console.log(this)//window
    }
    fn();//函数自执行时,函数不依赖于任何对象。这种情况
         //this全部指向了顶层对象window
    /*
    箭头函数里没有this和arguments
        1、箭头函数的this是固化的,指向所在环境的this,或者说没有this.
        所有在箭头函数里使用this是默认的外层的,如果都没有指向window。
        2、箭头函数里没有arguments但是有函数的rest参数(函数的剩余参数)


     */
    let add = function(){
        return console.log(1)
    }
    add();//1
    //箭头函数写法 箭头后面的console.log(1),就是相当于return返回的东西
    let add2 = () =>  console.log(1) 
    add2();//1
    let add3 = (n) =>  console.log(n) //带有参数的箭头函数
    add3(3)//3
    //多条语句时,写花括号不可省略return关键字
    let add4 = (n) => {
        let b = n + 5;
        let c = b + 2;
        return console.log(c);//10
    }
    add4(3);
    // 函数的rest参数
    let fnu =function(a,...b){
        console.log(a);
        console.log(b);
    }
    fnu(12,23,34);
    fnu(0);
    let add5 = (...a) => {
        console.log(a);
    }
    add5(11,22,33)
    //剩余参数只能出现在最后一个,此处就叫函数的rest参数,
    //是一个数组,可以用数组的方法
    let add6 = (...a) => {
        console.log(a);
    }
    add6(1,2,3)
    // 箭头函数的name属性和length属性
    let add7 = function(){
        console.log(add7.name);//add7 函数的名字
    }
    add7();
    let add8 = () => {
        console.log(add8.name);//add8 函数的名字
    }
    add8();
    //legnth:返回函数形参的个数,不包括rest参数的和赋值的形参
    let add9 = (a,b,c,d) => console.log(add9.length);//4 
    add9()

</script>
上一篇 下一篇

猜你喜欢

热点阅读