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

相关文章

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

一文全面详解Python变量作用域

《一文全面详解Python变量作用域》变量作用域是Python中非常重要的概念,它决定了在哪里可以访问变量,下面我将用通俗易懂的方式,结合代码示例和图表,带你全面了解Python变量作用域,需要的朋友... 目录一、什么是变量作用域?二、python的四种作用域作用域查找顺序图示三、各作用域详解1. 局部作

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv