zoukankan      html  css  js  c++  java
  • ES6 函数的拓展(四)

    一、参数带默认值函数
    1、在函数形参可以赋予函数默认值【即实参严格匹配undefined时,在函数内部使用形参时调用它的默认值】
    2、函数name属性 【返回函数名称,无名的函数返回空字符串】
    3、函数length属性  【从左往右开始计算函数形参直到碰到带有默认值形参时结束计算,这样计算的形参个数
    eg:

        //普通函数传参
        function test(a,b=2,c,d=3){
            console.log(a,b,c,d);
        }
        test(3,4,5);  //输出abcd分别为:3,4,5,3
        console.log(test.name);  //test
        console.log(test.length)    //1
        //使用解构传递参数,以对象解构为例
        function add({a=2,b}){
            //形参 {a=2,b} = {b:5,a:undefined  对象解构与属性顺序无关
            console.log(a,b);
        }
        add({a:undefined,b:5});  //使用对象解构  输出a b为:2 5


    4、rest参数
    在函数形参那是有扩展运算符接受实参【回接受的参数组成的数组
    eg:
        function test(a,b,...tail){
            console.log(a,b,tail);    //1 2 [3,4]
        }
        test(1,2,3,4);
        //参数数组解构传递
        function add([a,...tail]){
            console.log(a,tail);    //1 [2,3,4]
        }
        add([1,2,3,4]);
        
    二、箭头函数
    1、ES6中箭头函数中的this指向为该箭头函数【声明】时所处的父模块作用域中的this指向
    2、ES6中箭头函数中的arguments不保存实参,不进行实参的使用
    3、不能作为构造函数其函数内this指向可能不会指向该类实例对象
    eg:

        //箭头函数内部没有this,this指向箭头函数【声明时】的父作用域中的this
        function test(){
            console.log(this);
            return ()=>{    //箭头函数声明在这里【其this指向与test函数中的一样】
                console.log(this);
            };   
        }
    
        let obj = {
            name:'zhangsan',
            test:test()   //这里会先执行test()函数,然后再将test()函数返回的箭头函数地址赋值给obj的test属性,箭头函数在test()函数中已经声明了
        };
        obj.test();    //这里执行的是test()函数中返回的箭头函数而不是外面定义的test()函数





  • 相关阅读:
    剖析 GSM 加密机制以及位置更新的过程
    利用ASK/OOK 发射模块,实现信号重放
    使用RTL-SDR打开车门
    复现 360 Unicorn Team 黑科技之 HackNFC
    如何搭建并使用便携式 4G/LTE 伪基站研究移动安全
    如何利用 LTE/4G 伪基站+GSM 中间人攻击攻破所有短信验证
    黑客炼金术士 Seeker:可以攻破 4G 摸到你短信,还要为朝阳群众提供谍战工具
    如何使用HackRF做一个简单的IMSI捕获器
    招中高级web开发工程师
    ionic 动画和返回按钮
  • 原文地址:https://www.cnblogs.com/nzcblogs/p/11360915.html
Copyright © 2011-2022 走看看