ES6 函数参数等于空大括号的用法

文章目录

    今天发现一段看不懂的 ES6 新语法:

    const http = ({
      url = '',
      param = {},
      type = 'json',
      callback = '',
      ...other
    } = {}) => {
       // ...
    }
    

    我不明白为何字典参数还要用空大括号来赋值的意义。

    先写一段测试代码:test.js

    function showInfo({name = "zhongwei", age = 99} = {}) {
      console.log(name);
      console.log(age);
    }
    
    function showInfo2({name = "zhongwei", age = 99}) {
      console.log(name);
      console.log(age);
    }
    
    showInfo();
    showInfo2();
    

    执行代码:

    > node test.js
    zhongwei
    99
    /tmp/test.js:6
    function showInfo2({name = "zhongwei", age = 99}) {
                        ^
    
    TypeError: Cannot destructure property `name` of 'undefined' or 'null'.
    

    参数默认值

    可见,函数参数等于空大括号,是为了设置默认值。

    不过这个语法可读性也太差了。

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式