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 图片截取工具jquery.imagecropper.js
Apr 09 Javascript
jquery键盘事件介绍
Jan 31 Javascript
jquery实现邮箱自动填充提示功能
Nov 17 Javascript
简要了解jQuery移动web开发的响应式布局设计
Dec 04 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
Nov 01 Javascript
JavaScript html5利用FileReader实现上传功能
Mar 27 Javascript
Node.js 8 中的 util.promisify的详解
Jun 12 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
Aug 14 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
Jan 04 Javascript
JavaScript轮播停留效果的实现思路
May 24 Javascript
node基于async/await对mysql进行封装
Jun 20 Javascript
js 实现 list转换成tree的方法示例(数组到树)
Aug 18 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
Terran剧情介绍
2020/03/14 星际争霸
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
jquery等待效果示例
2014/05/01 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
功能强大的jquery.validate表单验证插件
2016/11/07 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
2016/12/17 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
require.js 加载过程与使用方法介绍
2018/10/30 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
python实现低通滤波器代码
2020/02/26 Python
Python request操作步骤及代码实例
2020/04/13 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
自荐信的两点禁忌
2013/10/30 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
写给同事的离职感言
2015/08/04 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
Javascript webpack动态import
2022/04/19 Javascript
Python测试框架pytest高阶用法全面详解
2022/06/01 Python