今天发现一段看不懂的 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 聊聊, 查看更多联系方式