ES6学习笔记之解构赋值
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};
ES6学习笔记之解构赋值的更多相关文章
- ES6-个人学习笔记二--解构赋值
第二期,解构赋值如果能够熟练应用确实是个十分方便的功能,但是过分的依赖和嵌套只会让代码理解和维护起来十分困难,是个体现高逼格的表达式呢~ 1,解构赋值的基础 //定义:es6运行按照一定模式,从数组或 ...
- 石川es6课程---6、解构赋值
石川es6课程---6.解构赋值 一.总结 一句话总结: 结构相同一一对应的方式赋值:let [json, arr, num, str] = [{ a: 1, b: 2 }, [1, 2, 3], 8 ...
- ES6基础-变量的解构赋值
作者 | Jeskson 来源 | 达达前端小酒馆 解构赋值: 数组的解构赋值,对象的解构赋值,字符串的解构赋值,数值与布尔值的解构赋值,函数参数的解构赋值. 开发环境准备: 编辑器,VS Code, ...
- es6之变量的解构赋值
es5中通常我们声明变量都是以下的方式: var a = 10; var b = 20; var c = 30; //或者 var a = 10,b = 20,c = 30; //或者 var arr ...
- es6分享——变量的解构赋值
变量的解构赋值:ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 以前的写法: var a = 1; var b = 2; es6允许的写法 ...
- ES6 继续 变量的解构赋值
春节放假这几天,感觉跟梦一样,瞬间就过去了.现在上班的前几天,都感觉有点不真实,不过看到口袋里的钱,就知道,是真真实实的度过了这个假期. 现在得开始重新工作了: 变量的解构赋值 ES6 允许按照一定模 ...
- es6入门2--对象解构赋值
解构赋值:ES6允许按照一定规则从数组或对象中提取值,并对变量进行赋值.说直白点,等号两边的结构相同,右边的值会赋给左边的变量. 一.数组的解构赋值: 1.基本用法 let [a, b, c] = [ ...
- ES6入门——变量的解构赋值
1.数组的解构赋值 以前为变量复制,只能直接指定值.现在ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 本质上,这种写法属于模式匹配,只要等 ...
- ES6中变量的解构赋值
1.数组的解构赋值 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 输出: 上面代码表示,可以从数组中提取值,按照对应位置,对变 ...
随机推荐
- iOS逆向系列-逆向APP思路
界面分析 通过Cycript.Reveal. 对于Reveal安装配置可参考配置iOS逆向系列-Reveal 通过Reveal找到内存中的UI对象 静态分析 开发者编写的所有代码最终编译链接到Mach ...
- pom.xml文件配置maven仓库地址
中央仓库就是Maven的一个默认的远程仓库,Maven的安装文件中自带了中央仓库的配置($M2_HOME/lib/maven-model-builder.jar) 在很多情况下,默认的中央仓库无法满足 ...
- Python全栈开发:协程代码实例
协程代码1 #!/usr/bin/env python # -*- coding;utf-8 -*- # 导入协程模块 """ 协程工作原理 ""&q ...
- C++: Basic knowledge Part 1
1.在 C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”? 首先,extern 是 C/C++ 语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译器,其声明的函数 ...
- DMZ在虚拟化环境中的部署
常见的方法有三种: 1.分别部署 2.部分虚拟化 3.全部虚拟化 传统DMZ部署结构: 分别部署: 想要保持DMZ区域物理隔离采用这种方法,每个区域分别部署进入不同的服务器集群,区域之间的连接采用物理 ...
- 数据结构学习笔记_树(二叉搜索树,B-树,B+树,B*树)
一.查找二叉树(二叉搜索树BST) 1.查找二叉树的性质 1).所有非叶子结点至多拥有两个儿子(Left和Right): 2).所有结点存储一个关键字: 3).非叶子结点的左指针指向小于其关键字的子树 ...
- 【转帖】WebRTC回声抵消模块简要分析
webrtc 的回声抵消(aec.aecm)算法主要包括以下几个重要模块:回声时延估计:NLMS(归一化最小均方自适应算法):NLP(非线性滤波):CNG(舒适噪声产生).一般经典aec算法还应包括双 ...
- Mysql修改表备注, 列信息
1.添加表和字段的注释 创建数据表的同时,给表和字段添加注释 -- 创建用户信息表 CREATE TABLE tb_user ( id INT AUTO_INCREMENT PRIMARY KEY C ...
- tip:删除数组中的undefined
this.checkedImg = this.checkedImg.filter(Boolean)
- Ubuntu+Ruby+MySQL+Nginx+Redmine部署记录
(2019年2月19日注:这篇文章原先发在自己github那边的博客,时间是2016年7月26日) 周五的时候老大布置了一个任务下来,要部署一个Redmine用于研发部,同时升级工作室的Redmine ...