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 相关文章推荐
YUI 读码日记之 YAHOO.util.Dom - Part.1
Mar 22 Javascript
jQuery 打造动态下滑菜单实现说明
Apr 15 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 Javascript
浅谈Unicode与JavaScript的发展史
Jan 19 Javascript
JavaScript使用slice函数获取数组部分元素的方法
Apr 06 Javascript
jQuery构造函数init参数分析续
May 13 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
Dec 12 Javascript
十大热门的JavaScript框架和库
Mar 21 Javascript
关于redux-saga中take使用方法详解
Feb 27 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
Dec 12 Javascript
Layui Form 自定义验证的实例代码
Sep 14 Javascript
Vue-router中hash模式与history模式的区别详解
Dec 15 Vue.js
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
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
javascript 继承实现方法
2009/08/26 Javascript
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
AngularJS基础 ng-click 指令示例代码
2016/08/01 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
如何从头实现一个node.js的koa框架
2019/06/17 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
python格式化字符串实例总结
2014/09/28 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
趣味活动策划方案
2014/02/08 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
内勤主管岗位职责
2014/04/03 职场文书
作风年建设汇报材料
2014/08/14 职场文书
优秀班主任申报材料
2014/12/16 职场文书
Python基础之hashlib模块详解
2021/05/06 Python