ES6函数中参数的默认值和解构赋值

news/2025/1/15 19:52:21/

ES6函数中参数的默认值
●给函数的形参设置一个默认值, 当你没有传递实参的时候, 使用默认值
●直接使用 赋值符号(=) 给形参赋值即可

   function fn(a, b = 100) {console.log(a, b)}fn()fn(10)fn(10, 20)复制代码

ES6的函数默认值
●在ES5之前是没有函数默认值的。函数的默认值是ES6的新语法
●函数的默认值是给函数的形参设置一个默认值, 当你没有传递实参的时候来使用
●书写: 直接在书写形参的时候, 以赋值符号(=) 给形参设置默认值就可以了
●任何函数都可以使用
●注意: 如果你给箭头函数设置参数默认值, 那么不管多少个形参, 都得写小括号
●普通函数

<script>// 给形参 a 设置了默认值为 10// 给形参 b 设置了默认值为 20function fn(a = 10, b = 20) {console.log('fn 普通函数内的打印')console.log('a : ', a)console.log('b : ', b)}// // 第一次调用// // 给 两个形参 赋值了, 那么就不使用默认值了fn(100, 200)// // 第二次调用// // 没有给 b 赋值, 那么 b 就会使用 20 这个默认值fn(1000)// // 第三次调用// // a 和 b 都没有实参进行赋值, 都会使用 默认值fn()
</script>复制代码
<script>//给a设置了默认值,b 没有设置默认值function fn(a = 10, b) {console.log('fn 普通函数内的打印')console.log('a : ', a)console.log('b : ', b)}//调用函数都不传递实参fn()
</script>复制代码

●箭头函数

<script>// 箭头函数也可以设置默认值// 给形参 a 设置了默认值为 10// 给形参 b 设置了默认值为 20const fn = (a = 10, b = 20) => {console.log('fn 箭头函数内的打印')console.log('a : ', a)console.log('b : ', b)console.log('---------------------')}// // 第一次调用// // 给 两个形参 赋值了, 那么就不使用默认值了fn(100, 200)// // 第二次调用// // 没有给 b 赋值, 那么 b 就会使用 20 这个默认值fn(1000)// // 第三次调用// // a 和 b 都没有实参进行赋值, 都会使用 默认值fn()
</script>复制代码

●随机数案例

<script>// 范围内的随机数// 定义函数, 两个数字分别默认值设置成 0 和 255const randomNum = (a = 255, b = 0) => Math.floor(Math.random() * (Math.abs(a - b) + 1)) + Math.min(a, b)console.log(randomNum(20, 30))
</script>复制代码

ES6解构赋值

●ES6允许按照一定的模式,从数组或对象中提取值,给变量进行赋值,称为解构赋值。
●解构赋值分为数组解构和对象解构
数组解构
●快速的从数组拿到数组中的数据
●语法:var [变量1,变量2, 变量3,....] = 数组
●会按照数组的索引依次把数组中的数据拿出来,赋值给对应的变量

<script>//定义一个数组const arr = [100, 200, 300, 400, 500]//需求: 单独定义五个变量获取五个数据const a = arr[0]const b = arr[1]const c = arr[2]const d = arr[3]const e = arr[4]console.log(a, b, c, d, e); //100 200 300 400 500
</script>复制代码
<script>// 解构数组const arr = [100, 200, 300, 400, 500]//需求: 单独定义五个变量获取五个数据const [a, b, c, d, e] = arrconsole.log(a, b, c, d, e) // 100 200 300 400 500
</script>复制代码

●解构多维数组
●数组怎么写, 解构怎么写,把数据换成变量

<script>// 1-2. 解构多维数组const arr = [1, 2, [3, 4, [5, 6, [7, 8, [9]]]]]console.log(arr)//需求: 定义变量拿到数据 9const a = arr[2][2][2][2][0]console.log(a) //9//解构const [a, b, [c, d, [e, f, [g, h, [i]]]]] = arrconsole.log(i) //9
</script>复制代码

对象解构

●快速从对象中拿到对象中的数据
●语法:var {键名1, 键名2, 键名3, ... } = 对象
●按照键名, 依次定义变量从对象中获取指定成员
●之前获取对象里面的值

<script>// 解构对象const obj = {name: 'Jack',age: 18,gender: '男'}const name = obj.nameconst age = obj.ageconst gender = obj.genderconsole.log(name, age, gender) //Jack 18 男</script>复制代码

●解构获取对象里面的值

<script>// 解构对象const obj = {name: 'Jack',age: 18,gender: '男'}// 解构const {name,age,gender} = objconsole.log(name, age, gender) //Jack 18 男
</script>复制代码

●解构的时候可以给变量起一个别名
●语法:var { 键名: 别名, 键名2: 别名 } = 对象
●注意:当你起了别名以后, 原先的键名不能在当做变量名使用了, 需要使用这个别名


<script>// 解构对象const obj = {name: 'Jack',age: 18,gender: '男'}//  解构的时候起一个别名const {name: a} = obj //等价于 const a = obj.nameconsole.log(name, a); //Jake//注意name是一个特殊的属性,对象里面自带有改属性所以不会报错const {age: b} = obj //等价一const b = obj.age//console.log(age, b); //Uncaught ReferenceError: age is not console.log(b); //18
</script>复制代码
<script>// 解构对象const obj = {name: 'Jack',age: 18,gender: '男'}const {name: a,gender,age: b} = objconsole.log(a, b, gender) //Jack 18 男
</script>

http://www.ppmy.cn/news/66727.html

相关文章

金字塔特征融合

金字塔的三种主要结构 FPN: Feature Pyramid Networks for Object Detection (CVPR 2017) PANet: Path Aggregation Network for Instance Segmentation (CVPR 2018) BiFPN: EfficientDet: Scalable and Efficient Object Detection (CVPR 2020) Deep High-Resolution Repre…

软件测试报告模板

目录 2 1 概述... 3 1.1 测试目的... 3 1.2 测试策略... 3 1.3 测试方法... 3 1.4 计划验收标准... 3 1.5 测试用例... 4

上海亚商投顾:沪指缩量调整跌超1% 新能源车产业链掀涨停潮

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 大小指数今日再度分化&#xff0c;沪指低开低走&#xff0c;午后一度跌超1.5%&#xff0c;创业板指则拉升涨超1%&a…

async和await

async 介绍 函数的返回值为promise对象 promise对象的结果由async函数执行的返回值决定 async 函数返回的是一个 Promise 对象。从文档中也可以得到这个信息。async 函数&#xff08;包含函数语句、函数表达式、Lambda表达式&#xff09;会返回一个 Promise 对象&#xff0…

一起来!白嫖Amazon DynamoDB!!!

Amazon DynamoDB简介 Amazon DynamoDB是由Amazon Web Services&#xff08;AWS&#xff09;提供的一种快速、灵活、全托管的NoSQL数据库服务&#xff0c;支持文档和键/值数据模型。它具有自动扩展、低延迟、高可靠性、高吞吐量等特点&#xff0c;能够处理从几个字节到几TB的数…

闪耀的钥匙:PHP 与访问修饰符

文章目录 参考描述访问修饰符访问修饰符PHP 与访问修饰符publicprotectedprivate 继承中的重写规则可见性举个栗子未重写父类的受保护成员前将受保护成员重写为公有成员将受保护成员重写为私有成员 为什么不允许子类成员设置比父类成员更严格的访问限制&#xff1f; final 关键…

【译】Java 内存泄露的构造和检测

1. 概述 在 Java 应用程序中&#xff0c;内存泄漏会导致严重的性能下降和系统故障。开发人员必须了解内存泄漏的发生原因以及如何识别和解决它们。 在本教程中&#xff0c;我们将提供一个使用失效的监听器问题作为示例来创建 Java 内存泄漏的指南。我们还将讨论各种检测内存泄…

简单随机微分方程数值解

1.随机微分方程求解&#xff1a;dX(t) − αXtdt σdWt 法一&#xff1a;Euler-Maruyama %% %O-U过程 %dX(t)-alpha*Xt*dtsigma*dWt,X|t0X0 %alpha2,sigma1,X01 % 设置初始参数 T 1; % 时间区间长度 N 1000; % 离散化的时间步数 dt T/N; …