ES6学习笔记之解构赋值
2024-09-05 08:00:04
1.数组的解构赋值
简单用法
{
// 旧
let a=1,b=3;
//新
let [a,b]=[1,3];
console.log(a,b);// 1 3
}
只要等号两边的模式相同,左边的变量就会被赋予对应的值。
{
let a,b,c;
[a,b,c]=[1,2]
console.log(a,b,c);// 1 2 undifined
}
{
let [a,b,c]=[1,,3];
a,b,c;//1 undefined 3
}
{
let [a,b]=[1,[2,3]];
a;//1
b;//[2,3]
}
{
let [a,...b]=[1,2,3];
a;//1
b;//[2,3]
}
{
let [a, b, ...c] = [1];
a;//1
b;//undefined
c;//[]
}
{
let [a,[b],c]=[1,[2,3],4]
a;//1
b;//2
c;//4
}
设置默认值
let [a='hello']=[];
a;//hello
let [b='world']=['yes'];
b;//yes
// ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,只有当一个数组成员严格等于undefined,默认值才会生效。
let [c=13]=[undefined];
c;//13
let [d=12]=[null];
d;//null
实例
- 交换两个变量的值
let [a, b]=[2,3];
[a,b]=[b,a];
console.log(a);//3
对象的解构
常规用法
let a,b;
({ a, b } = { a: 2, b: 3 })
console.log(a,b);//2,3;
//变量名与属性名一致
let {name}={name:'小明',age:18};
console.log(name);//小明
// 变量名与属性名不一致
let {a:name,b:age}={a:'小明',b:18};
console.log(name,age);//小明 18
如果解构失败,变量的值等于undefined。
let {a}={b:2};
a;//undefined
多层嵌套
function fn() {
return {
name: '小明',
userList: [
{ name: '小红' }
]
}
}
let res = fn();
let { name: person, userList: [{ name: otherPerson }] } = res;
console.log(person, otherPerson);//小明 小红
如果解构模式是嵌套的对象,而且子对象所在的父属性不存在,那么将会报错。
let {a: {b}} = {b: 666};
设置默认值
let {a=1}={a:3};
最新文章
- iOS之小门道道
- 《Qt Quick 4小时入门》学习笔记3
- #error作用
- C#修改文件权限
- JS实现上传本地图片前先预览
- 多线程编程之Linux环境下的多线程(二)
- 从JetBrains公司产品给我的商业模式启示
- Java沙箱技术
- Math.random获得随机数
- java Socket 长连接 心跳包 客户端 信息收发 demo
- oracle数据库的一次异常起停处理。
- Contaminated Milk
- redis学习(一)——redis介绍及安装
- SharePoint 读取内容的插件之SharepointPlus
- Centos Linux 下Pycharm 安装
- 前端 html head meta
- BZOJ 4520: [Cqoi2016]K远点对(k-d tree)
- POJ-1681
- 使用Asset Pipeline管理rails生产环境静态资源实现步骤
- POJ 1523 SPF 求割点的好(板子)题!
热门文章
- Android 开发 MediaRecorder音频录制
- Ubuntu GitHub操作——创建仓库
- 转:五种I/O模型和select函数简介
- java.io.FileNotFoundException: E:\work\work (拒绝访问。)
- PAT甲级——A1066 Root of AVL Tree
- Jmeter安装与配置(第一篇)
- react使用swiper,解决添加点击事件首位图片点击失效,解决轮播按钮被覆盖问题
- goland破解
- Django项目:CRM(客户关系管理系统)--69--59PerfectCRM实现king_admin行内编辑
- js身份证号码验证(小程序版)