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 相关文章推荐
niceTitle 基于jquery的超链接提示插件
May 31 Javascript
jquery表单验证使用插件formValidator
Nov 10 Javascript
Egret引擎开发指南之创建项目
Sep 03 Javascript
原生JS实现平滑回到顶部组件
Mar 16 Javascript
javascript事件的传播基础实例讲解(35)
Feb 14 Javascript
从零学习node.js之模块规范(一)
Feb 21 Javascript
JavaScript之面向对象_动力节点Java学院整理
Jun 29 Javascript
AngularJS ionic手势事件的使用总结
Aug 09 Javascript
jquery实现选项卡切换代码实例
May 14 jQuery
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
Sep 16 Javascript
解决vue-loader加载不上的问题
Oct 21 Javascript
小程序实现上下切换位置
Nov 16 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
php zip文件解压类代码
2009/12/02 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
jquery.validate.js 多个相同name的处理方式
2017/07/10 jQuery
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
vue写一个组件
2018/04/09 Javascript
vue底部加载更多的实例代码
2018/06/29 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
python妙用之编码的转换详解
2017/04/21 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
python scipy卷积运算的实现方法
2019/09/16 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
python实现图像全景拼接
2020/03/27 Python
解决Python安装cryptography报错问题
2020/09/03 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
本科生求职简历的自我评价
2013/10/21 职场文书
女大学生个人求职信
2013/12/09 职场文书
物理分数没达标检讨书
2014/09/13 职场文书
教师个人年终总结
2015/02/11 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL