ES6知识点整理函数数组参数的默认值及其解构的应用

全桥LLC谐振变换器设计与双环控制策略详解 LLC谐振变换器作为高频开关电源的核心拓扑,通过谐振腔实现软开关特性,显著提升转换效率(可达96%以上)。其工作原理基于谐振电感、电容的协同作用,当开关频率接近谐振点时实现ZVS/ZCS。在工业电源、电动汽车充电等场景中,电压电流双环控制策略通过引入电流内环和竞争仲裁机制,有效改善动态响应(实测负载跳变时电压跌落减少60%)。数字控制实现时需注意ADC采样同步和PWM更新时序,而谐振参数测量与温升管理则是工程实践的关键。 阅读详情

在ES6中, 函数的参数也可以使用解构赋值和默认值的设置,下面我们来看下

在ES6之前设置函数默认值的写法

function test(x,y) {
  x = x || 12;
  y = y || 22;
  console.log(x,y);
}
test(); // 12 22
test(1,2) // 1 2

在ES6中给函数参数赋默认值

function test(x=12, y=22) {
  console.log(x,y);
}
test(); // 12 22
test(3,4); // 3 4

ES6中函数数组参数的默认值

function test([x=2,y=1]) {
  console.log(x, y);
}

test([]); // 2, 1
test([3,4]) // 3 4
test();  // 报错: Uncaught TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined

解决上述最后一个错误:使用默认数组来匹配没有参数的情形

function test([x=2,y=1]=[]) {
  console.log(x, y);
}
test();   // 2 1

更多应用:

function test([x=2,y=1]=[], z=90) {
  console.log(x, y, z);
}
test();   // 2 1 90
test(undefined, 80); // 2 1 80
test('', 50); // 2 1 50 正常输出
// test(null, 80); // 报错,不能填入null Uncaught TypeError: Cannot read property 'Symbol(Symbol.iterator)' of object
// test(NaN, 60); // 报错: Uncaught TypeError: undefined is not a function

注意上面函数参数可以接受undefined,但不能接受null和NaN

下面则是更复杂的应用

function test([x=2,[y=3,w=4]=[]]=[], z=90) {
  console.log(x, y, w, z);
}
test(); // 2 3 4 90
test(undefined, undefined); // 2 3 4 90
test(undefined, 8); // 2 3 4 8
test([5,[]],12); // 5 3 4 12
test([5,[2,6]],12); // 5 2 6 12

注意其中的陷阱:

function test([x,y]=[1,2]) {
  console.log(x,y);
}
test(); // 1 2
test([]); // undefined undefined
如何解决ipa包上传App Store Connect时出现的无效二进制文件问题 本文详细解析了ipa包上传App Store Connect时出现无效二进制文件问题的常见原因及解决方案。从Scheme配置、架构支持到权限声明,提供了全面的检查步骤和实用技巧,帮助开发者快速定位并解决上传问题,确保应用顺利通过审核。 阅读详情

相关推荐

MTK平台LCD驱动开发实战:从零开始点亮你的Android屏幕

本文详细介绍了在MTK平台进行Android LCD驱动开发的完整流程。从理解LK与Kernel双核驱动框架入手,手把手讲解驱动结构体、屏幕参数配置、初始化序列编写以及PLL_CLOCK计算等核心步骤,并提供了系统集成配置与实用的调试避坑指南,帮助开发者高效点亮新屏幕。

terraform7cloud的博客 294

数组篇——生成一定长度的含有默认值的数组

生成长度为length,默认值为0的一维数组: Array.apply(null, Array(length)).map(()=>0) 或者 […Array(length)].map(()=>0) 使用 new Array(length)得到的数组无法用遍历的方式赋值,关于其原因,参见博客,总的来说就是数组是键为数值的对象,但Array方法生成的对象没有0…length这些键 …args是es6的特性,目的是将参数展开,…Array()可以将数组展开 ...

Wind_waving的博客 1138

PLC编程进阶:结构体(UDT)与功能块(FB)的模块化实践指南

本文深入探讨了PLC编程中实现模块化的核心方法,重点解析了结构体(UDT)与功能块(FB)的协同应用。通过将零散数据封装为UDT,并将控制逻辑打包为可复用的FB,能够构建出结构清晰、易于维护和调试的PLC程序。文章结合拧紧枪、电机控制等实战案例,提供了从设计原则到分层架构的完整实践指南,旨在帮助工程师将混乱的‘面条式’代码改造为高效的‘正规军’。

s3t4u的博客 222

复习笔记系列(一)—— 数组(ES5中的数组)

为了巩固下前面学习的以前学习的知识,所以打算写一个系列的笔记博客,同时对比分析下ES5 和 ES6(泛指ES2015以后的版本)的区别。 今天先来复习下数组。 1.创建数组 方法一:数组直接量 var arr = [];注意两点:1.直接量中的某个值,省略的元素将被赋予undefined值 2.直接量的语法允许有可选的逗号,故[,,]只有两个元素而非三个。 方法二:调用构造函数 var

qq_34356563的博客 634

Windows11开机必看:3种方法跳过联网激活(含最新OOBE命令)

本文详细介绍了Windows11新机开箱时绕过联网激活的三种实用方法,包括任务管理器终止进程法、命令行强制终止法和最新的OOBE\BYPASSNRO命令法。特别推荐使用微软官方预留的OOBE命令,操作简单且无副作用,帮助用户快速完成系统设置。

weixin_28366353的博客 1632

通信算法之320:DJI无人机云哨--信息包类型

大疆DJI无人机的云哨信息包主要分为四种类型:1)含经纬度位置、型号及序列号的完整数据包;2)仅含序列号的简化数据包;3)完全加密的数据包;4)加密密钥包。这些信息包格式不同,解析方式和应用场景也各异。如需更详细的技术资料,可联系作者获取。

leegang12的专栏 761

cannot read property Symbol(Symbol.iterator)

cannot read property Symbol(Symbol.iterator) 在Promise.all 使用的时候报错 因为这时候.all(xxxx) 中的xxxx还没返回值 所以我这个改成: 贴stackoverflow的解释: Promise.all()期望一个 iterable 作为它的参数,它可以从中获取一个迭代器并迭代其中的项目。您的代码传递的结果是.forEach()isundefined,所以这个错误的第一部分是 thatundefinedis not a...

Martin 的博客 3537

Easy3D&CGAL文章目录汇总

Easy3D&CGAL文章目录汇总

dayuhaitang1的博客 2868

vue 之各种报错

1 、undefined is not iterable!或者null is not iterable!" null和undefine是不可以拿来循环的,拿来循环就会报上面这个错误,循环的时候判断一下,不为null或者undefine的时候再拿来循环就可以了~~

xh1506101064的博客 3224

Exchange Server 2013 运维系列——邮箱配额设置(管理中心)

邮箱配额需要设置三个参数: 1、发出警告限制:表示在向用户发出警告之前的最大存储限制。如果邮箱大小达到或超过指定值,Exchange 将向邮箱用户发送警告消息。 2、禁止发送限制:表示邮箱的“禁止发送”限制。如果邮箱大小达到或超过指定的限制,Exchange 将阻止邮箱用户发送新邮件,并显示一条描述性错误消息。 3、禁止发送和接收限制:表示此邮箱的“禁止发送和接收”限制。如果邮箱大小

白昼的技术专栏 1万+

YOLOv11涨点改进 | 全网创新首发、主干改进篇 | CVPR 2025 | RAVLT主干让 YOLOv11 更加强大!通过增强线性注意力机制,特别在小目标和复杂背景的检测上表现突出

本文提出RAVLT主干网络,通过改进YOLOv11的空间特征建模能力,显著提升小物体和复杂背景检测性能。RAVLT采用秩增强线性注意力(RALA)机制,在保持线性计算复杂度的同时解决传统线性注意力低秩问题。RALA通过增强KV缓冲区和输出特征矩阵的秩,提高特征多样性和建模能力。实验表明,RAVLT在ImageNet-1k上达到84.4% Top-1准确率,仅需2600万参数和4.6GFLOPs,性能优于现有线性注意力模型。文章详细介绍了RAVLT模块结构、实现原理及在YOLOv11中的集成方法,包含四种主干

Ai缝合怪、助力小伙伴高效发论文 641

解决Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘id‘)报错

前期上网查以为是axios异步请求的问题,后来一直尝试发现是访问对象的问题,每个人触发报错的前提都不相同,看看是否适合你!

悟其浅而深修,沉其心而精进 4万+

FPGA面试题目笔记(一)——FPGA开发流程、亚稳态和竞争冒险、建立保持时间、异步FIFO深度等

同步异步电路、同步异步复位、时钟偏移和抖动、最小工作周期计算、触发器锁存器

H19981118的博客 1万+

ES实用的深度解构赋值方法

基于这种特性,如果一次性想要定义多个变量,就可以使用这种解构的方式定义,相当于一次性定义了三个变量并对变量进行了赋值。在实际开发中基本没有上面那种简单的结构,大多数都是数据结构比较复杂,用好了解构赋值才会让你的代码看起来更加整洁。解构数组和对象有些不同,解构对象的时候属性前后位置不影响,但是结构数组,需要按照索引顺序结构。如果使用解构的话,只需要如下面格式所写即可,保持将变量名和对象属性名同名才可取到值。作者:咸虾米,如果对内容有更好的建议或者优化方案,请评论留言。同上面对象别名方式一致。

嗨,大家好,我是爱搞知识的咸虾米 3522

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ES6——解构赋值

本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是附赠给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车!!如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

2401_83642079的博客 753

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

JavaScript ES6 解构:优雅提取数据的艺术

在 JavaScript 的世界中,ES6(ECMAScript 2015)的推出为开发者带来了许多革命性的特性,其中“解构赋值”(Destructuring Assignment)无疑是最受欢迎的功能之一。它像一把锋利的瑞士军刀,让我们能够以更简洁、直观的方式从数组或对象中提取数据。本文将带你从零开始,了解解构的定义、使用方法和注意事项,感受它如何让代码更优雅、更高效。

JakeMa1024的博客 1224

ES6知识点整理函数对象参数的默认值及其解构的应用

同函数数组参数一样,函数的对象参数的默认值和解构过程整理 函数对象参数的默认值与解构的形式 此处使用箭头函数来处理 : (({x,y})=>{ console.log(x, y); // // undefined undefined })({}); (({x=1,y=2})=>{ console.log(x,y); // 1 2 })({}); (({x...

Wang的专栏 2412

ES6,新增语法整理之解构与赋值

/ 参数是一组有次序的值// 参数是一组无次序的值。

m0_37749760的博客 562

ES6入门—ES6的数组与函数,前端快速转战Kotlin教程

四、ES6 扩展运算符扩展运算符( spread )是三个点(…),主要用于函数调用,它能够将一个数组转为用逗号分隔的参数序列,也可以用于数组的合并,与解构赋值配合使用等等。示例:效果如下:五、ES6 函数ES6 新增了解构,将一个数据结构分解为更小部分的过程。使用 ES5 提取对象中的信息形式如下:使用解构可以从对象里取出数据存为变量。效果如下:六、rest 参数ES6 新增了 Rest 参数用来接收函数的多余参数,组成一个数组,放在形参的最后。

2301_76379606的博客 832

ES6 赋值好能手——解构赋值

ES6 赋值好能手——解构赋值 文章目录ES6 赋值好能手——解构赋值简介数组的解构报错情况Set也可以使用解构赋值默认值对象的解构赋值获取对象的方法模式与变量对象的解构赋值可继承对象解构赋值需要注意的几点字符串的解构赋值数值和布尔值的解构赋值解构赋值的规则函数参数的解构赋值圆括号问题不能使用圆括号的情况可以使用圆括号的情况解构赋值用途交换变量的值从函数返回多个值函数参数的定义取 JSON 数据函数参数的默认值遍历 Map 结构输入模块的指定方法 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在

归子莫的博客 424

ES6,新增语法整理之函数的扩展

变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。setTimeout()如果是普通函数,this将指向window,箭头函数导致this总是指向函数定义生效时所在的对象(本例是{name: ‘张三’}),所以打印出来的是。由于箭头函数没有自己的this,所以当然也就不能用call()、apply()、bind()这些方法去改变this的指向。在 ES6 之前,不能为函数的参数指定默认值,通常采用如下方法实现。

m0_37749760的博客 1048

22个关于ES6的最新面试题汇总整理

作者:StevenLikeWatermelonhttps://juejin.cn/post/6844903734464495623近期在复习ES6,针对ES6新的知识点,以问答形式整理一...

前端达人 8632

es6知识点整理

es6知识点整理 文章目录es6知识点整理let和const变量的解构赋值模板字符串函数的扩展对象的语法糖set和mapsymbolPromiseasync/awaitclass let和const let 声明变量 不存在变量提升 不能在变量声明语句之前去使用变量 在变量声明前使用变量会报错 暂时性死区 存在暂时性死区,即在变量声明语句之前的区域和声明语句外的块级作用域下是不能使用该变量的 不允许重复声明 在声明变量之后,不能重复声明该变量,只能进行赋值操作 块级作用域 ES6中,

XDE_cat_的博客 807

ES6 知识点整理

ES6核心知识点摘要 变量声明:let/const具有块级作用域和暂时性死区,const声明常量时引用类型属性可修改。 箭头函数:继承外层this,不可作构造函数,无arguments对象。 模板字符串:反引号支持多行文本和变量嵌入(${x})。 解构赋值:从数组/对象快速提取值,简化数据操作。 异步处理:Promise管理异步状态,async/await以同步写法处理异步。 数据结构:Set自动去重,Map支持任意类型键。 Class与模块化:类语法糖实现继承,import/export拆分代码模块。 高

黄同学的博客 1482

Web前端之ES6的实用深度解构赋值方法、复杂的解构赋值

Web前端之ES6的实用深度解构赋值方法、复杂的解构赋值

优快云博客主页地址:https://mengjian.blog.youkuaiyun.com/ 1971

es6学习整理之变量的解构赋值

变量的解构赋值 本文是在阮一峰老师的文章基础上进行的个人理解 数组的解构赋值 对象的解构赋值 字符串的解构赋值 数值和布尔值的解构赋值 函数参数的解构赋值 圆括号问题 用途 1.数组的解构赋值 基本用法: ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 以前,为变量赋值,只能直接指定值。 let a = 1; let b =...

okboy519的博客 155

ECMAScript知识点整理 - ES6(一)

目录 一、ECMAScript 1.1 什么是ECMAScript 1.2 什么是ECMA-262 1.3 ES6兼容性 二、ES6关键词 2.1 let变量声明以及声明特性 2.1.1 let关键字 2.1.2 let关键字特性 2.1.3 let关键字 - 案例练习 2.2 const声明常量以及特点 2.2.1 const关键字 2.2.2const声明的特点 三. 变量的解构赋值 3.1什么是变量解构赋值 3.2数组的结构 3.3 对象的解构 四、模板字符...

JHY97的博客 758
上一篇: ES6知识点整理对象解构赋值的应用
下一篇: ES6知识点整理函数对象参数的默认值及其解构的应用
Wang's Blog
博客等级 码龄12年 7438粉丝 2422原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值