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

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

Python之变量命名规则详解

《Python之变量命名规则详解》Python变量命名需遵守语法规范(字母开头、不使用关键字),遵循三要(自解释、明确功能)和三不要(避免缩写、语法错误、滥用下划线)原则,确保代码易读易维护... 目录1. 硬性规则2. “三要” 原则2.1. 要体现变量的 “实际作用”,拒绝 “无意义命名”2.2. 要让

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的