zoukankan      html  css  js  c++  java
  • ES6-11学习笔记--函数的参数

    参数的默认值
    与解构赋值结合
    length属性
    作用域
    函数的name属性
     
    ES5设置函数参数默认值:
    function foo(x, y) {
        y = y || 'world';
        console.log(x, y);
    }
    foo('hello', 'girl');
    foo('hello', 0); // 由于0理解成false,所以y赋值为world
    // 这样设置不够严谨且麻烦
    

      

    ES6设置函数参数默认值:
    function foo2(x, y = 'world') {
        console.log(x, y);
    }
    foo2('hello', 0)
    

      

    参数变量是默认声明,下面不能用let,const重复声明:
    function foo(x=5){
        let x =1
    }
    

      

    参数不能够重名:
    function foo(x,x,y){}
    

      

    默认参数的位置要在全部无默认值参数之后:
    functon foo(x,y,z=5){}
    

      


    与解构赋值结合,看解构赋值篇章内容即可:点击跳转
    参数默认值配合解构赋值,可以使代码可读性更强。
    如自定义一个ajax函数:
    function ajax(url,{
        body = '',
        method = 'GET',
        header ={}
    }){}
    

      


    length属性返回的是没有指定默认值参数的个数:
    function lfoo(x, y, z = 2) {}
    console.log(lfoo.length); // 2
    

      


    作用域例子:
    let x = 1
    function foo(x, y = x) {
        console.log(y)
    }
    foo(2)
    
    function foo2(y = x) {
        let x = 2
        console.log(y)
    }
    foo2() 
    

      


     
    函数的name属性:
    function fname() {}
    console.log(fname.name); // fname
    console.log((new Function).name); // anonymous 匿名
    console.log(fname.bind({}).name); // bound fname
    console.log((function () {}).bind({}).name); // bound
    

      

     
    放弃安逸,持续努力——成长
  • 相关阅读:
    115. 不同的子序列
    114. 二叉树展开为链表
    基于Docker结合Canal实现MySQL实时增量数据传输
    Docker-Compose
    Docker容器的创建、启动、和停止
    ES集群
    ES
    Docker配置JDK1.8镜像
    Docker及Docker-Compose的使用
    docker安装jdk
  • 原文地址:https://www.cnblogs.com/MarsPGY/p/14823400.html
Copyright © 2011-2022 走看看