首页 > 其他 > 详细

ES6解构与默认值的结合使用

时间:2021-07-31 11:21:26      阅读:37      评论:0      收藏:0      [点我收藏+]

在读源码框架时遇到方法中有这样的形参:{ message = ‘ok‘ } = {}

有点懵为什么已经赋值了还又赋了一个空对象

随后我去看了阮一峰老师的 ECMAScript 6 入门才明白。这是参数默认值与解构赋值的默认值结合起来使用

如下列例子:

function foo({x, y = 5}:any){
    console.log(x,y)
}
foo({})        //输出 undefined 5
foo({x:1})        // 输出 1 5
foo({x:1,y:2})  // 输出 1 2
foo()  //报错 TypeError: Cannot destructure property ‘x‘ of ‘undefined‘ as it is undefined.

只有当函数foo传入的参数是一个对象时,会解构出x,y。否则会报错!当我们需要使用默认值时,必须传入一个空对象,否则就如同上面一样会报错。

那么如果想要实现不提供参数的情况下实现默认值,我们把foo函数修改成如下:

function foo({x,y = 5}:any ={}){
    console.log(x,y)
}
foo() // 输出为 undefined 5




ES6解构与默认值的结合使用

原文:https://www.cnblogs.com/baiyifengyun/p/15083010.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!