当前位置: 首页 > news >正文

es6的解构赋值 和扩展运算符 ... 的区别

举例说明

解构赋值

我们先自己定义一个常量

const obj = {
  prop1: 1,
  prop2: 2
}
console.log(obj, 'vvvvvvvvvvvvv')
const re = obj
console.log(re, 're')

在这里插入图片描述

上图可以看出就是一个正常的赋值

然后对比解构赋值的数据

const firstProp = obj.prop1;
const secondProp = obj.prop2;
console.log(firstProp, secondProp, '.....................');

const {prop1, prop2} = obj;
console.log(prop1, prop2, obj, '解构赋值');

在这里插入图片描述
这里看出就是取值

然后看一下数组的形式是怎么样的

const arr = [{name: '1', age:' 2'}, {name: '3', age:' 4'}]
console.log(arr)
const [name, age] = arr;
console.log(name, age, arr, '解构赋值arr');

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
可以看出那么就是取得数组的第一个对象元素,age取得是第二个对象元素

…扩展运算符

我们用例子来编写

定义两个全局变量

var arr1 = [1,2];
var arr2 = [3,4];
我们打印结果肯定是 [1,2] [3,4]

我们定义个空数组

var arg = [];

ES5的写法 就是用push的方法

arg.push(arr1,arr2)
console.log(arg,'//')

// ES6,… 扩展运算

console.log([...arr1,...arr2]) //[1,2,3,4]

在这里插入图片描述

如果我们用apply 函数结合es5那么

var arr1 = [1,2];
var arr2 = [3,4];
console.log(arr1, arr2)

var arg = [];
// ES5的写法 就是用哪个push的方法
arg.push.apply(arr1,arr2)
console.log(arr1, arg)//[1,2,3,4], []
//这里的arr1竟然把arr1和arr2合并到一起了

// ES6,
console.log([...arr1,...arr2]) //[1,2,3,4, 3,4]

在这里插入图片描述
apply() 方法见下一个,写的不对的请指教,谢谢。

https://blog.csdn.net/lzfengquan/article/details/119276254

相关文章:

  • 项目上线注意事项
  • apply()方法
  • 学习Vue.js的五个小例子
  • 执行 set-ExecutionPolicy RemoteSigned 失败解决方法
  • UVA11729 Commando War【贪心】
  • 根据 选中行数据状态进行按钮的展示和置灰功能
  • 视频编解码学习之五:差错控制及传输
  • Git安装和项目中常用的git命令,
  • php发送邮件(正解!!!)
  • 开发项目时,分支新建和合并保留
  • linux备份文件和数据库脚本
  • 远程操作分支
  • ansible 运维工具简单整理
  • 循环遍历数组中的每一项,并根据每一项的某个值进行判断 every 、forEach ,some
  • 杭电 1231 最大连续子序列
  • [译] React v16.8: 含有Hooks的版本
  • 【Linux系统编程】快速查找errno错误码信息
  • 【笔记】你不知道的JS读书笔记——Promise
  • gops —— Go 程序诊断分析工具
  • python_bomb----数据类型总结
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 三分钟教你同步 Visual Studio Code 设置
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 提醒我喝水chrome插件开发指南
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 国内开源镜像站点
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #define与typedef区别
  • #ifdef 的技巧用法
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (一)kafka实战——kafka源码编译启动
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)四层和七层负载均衡的区别
  • .net 4.0发布后不能正常显示图片问题
  • .NET CORE Aws S3 使用
  • .NET Reactor简单使用教程
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .net下的富文本编辑器FCKeditor的配置方法
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [Android]创建TabBar
  • [Angular] 笔记 20:NgContent
  • [ASP]青辰网络考试管理系统NES X3.5
  • [c#基础]值类型和引用类型的Equals,==的区别
  • [Django 0-1] Core.Handlers 模块
  • [English]英语积累本
  • [HNOI2018]排列
  • [ios] IOS文件操作的两种方式:NSFileManager操作和流操作【转】
  • [JS入门到进阶] 哎,被vite小坑了一波,大家记得配置build.cssTarget为‘chrome61‘
  • [leetcode 数位计算]2520. 统计能整除数字的位数
  • [NOI2020统一省选 A] 组合数问题 (推式子)
  • [SQL开发笔记]DELETE 语句:删除表中的行