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 相关文章推荐
关于juqery radio写法的兼容性问题(新老版本jquery)
Jun 14 Javascript
js前台分页显示后端JAVA数据响应
Mar 18 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
Oct 17 Javascript
Javascript定义类(class)的三种方法详解
Mar 13 Javascript
JavaScript中使用自然对数ln的方法
Jun 14 Javascript
JavaScript实现点击按钮切换网页背景色的方法
Oct 17 Javascript
jQuery验证插件validate使用方法详解
Sep 13 Javascript
JS多文件上传的实例代码
Jan 11 Javascript
webpack 2.x配置reactjs基本开发环境详解
Aug 08 Javascript
基于D3.js实现时钟效果
Jul 17 Javascript
react项目实践之webpack-dev-serve
Sep 14 Javascript
原生js实现移动端Touch轮播图的方法步骤
Jan 03 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中文字符串截断无乱码解决方法
2016/10/10 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
JavaScript 继承详解(三)
2009/07/13 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
2015/09/01 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
Prototype框架详解
2015/11/25 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
2015/11/30 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
2018/02/10 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
python判断变量是否为列表的方法
2020/09/17 Python
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
数控技术专业推荐信
2013/11/01 职场文书
优秀毕业生找工作自荐信
2014/06/23 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
平面设计专业求职信
2014/08/09 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
检察院起诉书
2015/05/20 职场文书
python 爬取天气网卫星图片
2021/06/07 Python
python字符串的多行输出的实例详解
2021/06/08 Python
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS