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

发布时间: 2020-05-08 17:34:31 作者: 大象笔记

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

参数默认值

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

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

我是一名山东烟台的开发者,联系作者