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

更新日期: 2020-05-08 阅读次数: 3370 字数: 178 分类: Javascript

今天发现一段看不懂的 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'.

参数默认值

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

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

tags: ES6 新语法

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式