Javascript 解构赋值详情


Posted in Javascript onNovember 17, 2021

 

1、数组解构

let [a, b, c] = [1,2,3]
console.log(a, b, c) // 1 2 3

除了数组,任何可迭代的对象都支持被解构, 例如字符串

let [first, second] = "he"

console.log(first, second) // h e

2、对象解构

赋值右侧是对象,左侧是包含在花括号内逗号隔开的变量名

let {a, b, c} = {a:1, b:2, c:3}
console.log(a,b,c) // 1 2 3

左侧的变量名需要和对象中的属性名相同,如果对应不上的话,左侧的变量名将被赋值为undefined。例如:

let {a,b, d} = {a:1, b:2, c:3}
console.log(a,b,d) // 1 2 undefined

如果变量名与属性名不一样,可以用冒号分隔符将属性名赋值给变量名

例如:

let {a,b, c:d} = {a:1, b:2, c:3}
console.log(a,b,d) // 1 2 3

3、不完全解构

解构赋值左侧变量个数可以不等于右侧数组中元素的个数

(1)左侧多余的变量会被设置为undefined,

let [a, b, c] = [1, 2]

console.log(a, b, c) // 1 2 undefined

(2)右侧多余的值将被直接忽略

let [a, b, c] = [1, 2, 3, 4]

console.log(a, b, c)  // 1 2 3

(3)左侧可以用逗号跳过某些值

let [a, , c] = [1, 2, 3, 4]

console.log(a, c)  // 1 3

(4)右侧多余的值可以通过...收集到一个变量中

let [a, b, ...c] = [1, 2, 3, 4]

console.log(a, b, c)  // 1 2 [3, 4]

4、用解构赋值实现变量交换

let a = 1, b=2;
[a, b] = [b, a]
console.log(a) //2
console.log(b) //1

到此这篇关于Javascript 解构赋值详情的文章就介绍到这了,更多相关Javascript 解构赋值内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript 支持ie和firefox杰奇翻页函数
Jul 22 Javascript
分享14个很酷的jQuery导航菜单插件
Apr 25 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
Dec 12 Javascript
js 验证身份证信息有效性
Mar 28 Javascript
jquery中radio checked问题
Mar 16 Javascript
jquery弹出遮掩层效果【附实例代码】
Apr 28 Javascript
jQuery 生成svg矢量二维码
Aug 09 Javascript
微信小程序(应用号)简单实例应用及实例详解
Sep 26 Javascript
vue高德地图之玩转周边
Jun 16 Javascript
vue-router路由参数刷新消失的问题解决方法
Jun 17 Javascript
vue.js整合mint-ui里的轮播图实例代码
Dec 27 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
May 29 Javascript
javascript Number 与 Math对象的介绍
Nov 17 #Javascript
javascript条件式访问属性和箭头函数介绍
Nov 17 #Javascript
JavaScript 对象创建的3种方法
Nov 17 #Javascript
JavaScript 中for/of,for/in 的详细介绍
Nov 17 #Javascript
JavaScript高级程序设计之基本引用类型
Nov 17 #Javascript
JavaScript高级程序设计之变量与作用域
javascript对象3个属性特征
You might like
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
js 判断上传文件大小及格式代码
2013/11/13 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
jQuery实现手机上输入后隐藏键盘功能
2017/01/04 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
原生js实现选项卡功能
2017/03/08 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
2017/07/20 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
基于JavaScript实现轮播图效果
2021/01/02 Javascript
Django 路由层URLconf的实现
2019/12/30 Python
基于python修改srt字幕的时间轴
2020/02/03 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
Alba Moda瑞士网上商店:独家意大利时尚女装销售
2016/11/28 全球购物
毕业生动漫设计求职信
2013/10/11 职场文书
绩效考核实施方案
2014/03/18 职场文书
初三学习计划书范文
2014/04/30 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
房屋产权证明书
2014/10/15 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
小学数学国培研修日志
2015/11/13 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL