ES6-变量的解构赋值(数组、对象、特殊对象、实际用途)

2024-06-22 15:48

本文主要是介绍ES6-变量的解构赋值(数组、对象、特殊对象、实际用途),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.数组的解构赋值

(1)语法形式,左边变量,右边值,只需左右模式匹配即可:例:let[a,b,c,d]=[10,20,30,40]

<script>// let a=10;// let b= 20;// let c=30;//以上通过解构赋值表示:let[a,b,c]=[100,200,300]console.log(a,b,c);
</script>

复杂数组案例:

<script>
let[ ba, [[b]b,[bc,bd]]]=[100,[200],[300,400]];
console.log(ba,bb,bc,bd);
</script>

(2) 两边模式不能匹配,也可以进行解构:

例子1:

<script>
let[a, ,b]=[1,2,3];//声明变量有一为空
console.log(a,b);//输出1,3
</script>

例子2:解构赋值,变量没有设置值,系统设置个默认值Undefined

<script>
let[a, b,c]=[1,4];//声明值有一为空,
console.log(a,b,c);//输出1,4,c变量输出默认值Undefined
</script>

例子3:

<script>
let[var1,var2='小红']=['小马'];/
console.log(var1,var2);//输出小马,小红,var2没有给设置值,所以var2使用了自己的默认值
</script>

例子4:
 

<script>
let[var1='小红',var2]=['小马'];
console.log(var1,var2); //输出小马,Undefined,变量没有值,默认给了Undefined
</script>

总结:

数组的解构赋值:

保证等号两边的数组模式一样;(见例子1)

如果不能正确解构,有的变量可能会自动赋值undefined;(见例子4,例子2)

变量可以有默认值;(见例子3)

2.对象的解构赋值

完整格式:

let{变量名1:变量值命名1,变量名2:变量值命名2} = {变量名1:变量值1,变量名2:变量值2};

简写形式:

let{变量名1,变量名2} = {变量名1:变量值1,变量名2:变量值2};

例子:

<script>
//简写形式
let{bar,foo} = {bar:'li',foo:100};
console.log(bar,foo);
//完整格式,对象解构赋值
let{bar:a,foo:b} = {bar:'li',foo:100};
console.log(a,b);
</script>

复杂形式:

<script>
let obj = {p:['hello',{ y:'World'}
]
};
let {p:[x,y:y]}=obj;
console.log(obj)
</script>

3..特殊对象的解构赋值

一切皆对象;

字符串可以被看做是由字符组成的数组;

(1) 字符串可以当做字符组成的数组,例子:

<script>
let[a,b,c,d,e,f,g,h,i] = 'helloworld';
conlole.log(a);
conlole.log(b);
conlole.log(c);
conlole.log(d);//输出helloworld
</script>

(2) 字符串当成对象:例子:

<script>
let {length:len}=''world';
console.log(len);//输出5,对象的长度
let{PI:p1}=Math;
console.log(p1);//输出3.14......
</script>

4.实际用途

(1)交换两个变量的值

<script>
let a = 100;
let b=200;
//传统的方式
let c = a;
a = b;
b = a;
// 解构方式
[a,b]=[b,a];//不能写成let[a,b]=let[b,a],因为上面已经进行声明
console.log(a,b);//输出100,200
</script>

(2)提取json中的数据

<script>
let jsonData = {id:42,status:'OK',data:[12,,4,5,6,73]
};
let{id,status,data} = jsonData;
consloe.log(id,status,data);//输出42,OK,[12,,4,5,6,73]
</script>

(3)设置函数的默认值

<script>
function gerJson({url,type='get',data='',async=true;
console.log(url,type,data,async);
})
getJson({url:'http://www.baidu.com',data:'a=100'
})
//输出http://www.baidu.com,get,a=100,true
</script>

(4)ES6模块(必须使用解构赋值)

读取module.js中变量值:

export var firstName="Zhang";

export var lastName="wang";

export var year="1999";
 

<script>
import{firstName,lastName,year} from './module.js';
console.log(firstName,lastName,year);
//输出Zhang,wang,1999
</script>

 

这篇关于ES6-变量的解构赋值(数组、对象、特殊对象、实际用途)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084724

相关文章

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

C++原地删除有序数组重复项的N种方法

《C++原地删除有序数组重复项的N种方法》给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度,不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(... 目录一、问题二、问题分析三、算法实现四、问题变体:最多保留两次五、分析和代码实现5.1、问题分析5.

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js