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 相关文章推荐
超简单的jquery的AJAX用法
May 10 Javascript
JS 树形递归实例代码
May 18 Javascript
js如何获取兄弟、父类等节点
Jan 06 Javascript
JQuery选择器、过滤器大整理
May 26 Javascript
跟我学习javascript的基本类型和引用类型
Nov 16 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
Feb 18 Javascript
基于AngularJS实现iOS8自带的计算器
Sep 12 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
Nov 17 Javascript
Bootstrap的modal拖动效果
Dec 25 Javascript
使用AngularJS2中的指令实现按钮的切换效果
Mar 27 Javascript
angularjs实现过滤并替换关键字小功能
Sep 19 Javascript
实例讲解React 组件
Jul 07 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
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
jquery处理json数据实例分析
2014/06/03 Javascript
javascript中this的四种用法
2015/05/11 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
2019/06/21 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
vue-devtools的安装和使用步骤详解
2019/10/17 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
js实现简易ATM功能
2020/10/27 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
Mac 上切换Python多版本
2017/06/17 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Python中一般处理中文的几种方法
2019/03/06 Python
Python 画出来六维图
2019/07/26 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
Python线程threading模块用法详解
2020/02/26 Python
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
应届大学生的推荐信
2013/11/20 职场文书
太行山上观后感
2015/06/05 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis