ES6解构与默认值的结合使用
2024-09-08 09:43:21
在读源码框架时遇到方法中有这样的形参:{ 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
最新文章
- Shiro-集成Spring
- static{ }语句块详解
- iOS开发之网络编程--使用NSURLConnection实现文件上传
- C#常用工具类——Excel操作类
- JavaScript 工作必知(九)function 说起 闭包问题
- html5实现饼图和线图
- 一键保存网页为PDF
- flask开发用户管理系统wtf版
- 聊聊 JUC 并发包
- 使用第三方插件Gear Tacks 画齿轮
- 【洛谷p1162】填涂颜色
- Jboss项目部署出现java.lang.UnsupportedClassVersionError 问题的解决方法
- Go Slice 使用中的小陷阱
- python常用内建模块--collections
- Android 里的数据储存
- [Android] Java Basic : preview
- java封装实现Excel建表读写操作
- 二十一、MVC的WEB框架(Spring MVC)
- native和webview切换
- Node.js对MongoDB进行增删改查操作
热门文章
- 06 - Vue3 UI Framework - Dialog 组件
- [BUUCTF]REVERSE——[SUCTF2019]SignIn
- OpenWrt之DNS设置
- Jaeger知识点补充
- fcntl 加锁模块
- FastJsonHttpMessageConverter请求中参数序列化问题排查
- axios 高级封装
- MindSpore联邦学习框架解决行业级难题
- JAVA实现office文档(word、excel、ppt等)、压缩包在线预览,支持禁止下载功能、支持PC和手机
- 【LeetCode】344. Reverse String 解题报告(Java & Python)