ES6第三节:变量的解构赋值
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。下面我们看实际的例子:
一、数组解构:
let [a,b,c] = [1,2,3];
console.log(a); //a
console.log(b); //b
console.log(c); //c //从上面的例子看出,左边的数组一一对应右边进行拆解并赋值,左边3个,右边就是3个,如果不对等就会报错,大家可以尝试下
• 解构的默认值:
let [a,b,c="CCC"] = [1,2];
console.log(a); //a
console.log(b); //b
console.log(c); //CCC //右边我们并没有给c赋值,但左边已经声明了一个默认值,它也会按照默认值输出,但默认赋值有一个特殊的情况,就是undefined和null
let [a,b="B"] = [1,undefind];
console.log(a); //a
console.log(b); //B undefined并没有赋给b,undefined相当于什么都没有
我们来看null的情况
let [a,b="B"] = [1,null];
console.log(a); //a
console.log(b); //null 这时的null赋给了b,null相当于有值,但值为null。所以b并没有取默认值,而是解构成了null。
二、对象的解构赋值:
let {a,b,c} = {a:"A",c:"C",b:"BB"};
console.log(a); //A
console.log(b); //BB
console.log(c); //C //注意:对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值
•圆括号 ( ) 的使用:
let a;
{a} = {a:"ES6"};
console.log(a); //如果在解构之前就定义了变量,这时候去解构会出现问题,编译报错,我们在解构的外层加一个圆括号就正常了
let a;
({a} = {a:"ES6"});
console.log(a); //ES6 在外层加了 ( ) 后就可以正常编译输出了
三、字符串解构:
let [a,b,c,d,e] = "hello";
console.log(a); //h
console.log(b); //e
console.log(c); //l
console.log(d); //l
console.log(e); //o //此时字符串被转换成了一个类似数组的对象。
总结:
1数组解构 • 有一个默认值情况
2对象的解构 • 有一个圆括号情况
3字符串解构
ES6第三节:变量的解构赋值的更多相关文章
- ES6学习之变量的解构赋值
前言:什么是ES6?ECMAScript 6(简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.其中相比较于ES5新增了诸多的特性,并且ES6可转换为ES5的语法.- ...
- ES6学习历程(变量的解构赋值)
一.数组的解构赋值 1.举几个例子足以理解 let [a, b, c] = [1, 2, 3]; a:1; b:2; c:3; let [x, , y] = [1, 2, 3]; x:1 y ...
- ES6学习4 变量的解构赋值
变量的解构赋值 一.数组结构赋值 1.数组结构赋值 let [a, b, c] = [1, 2, 3]; ES6 可以从数组中提取值,按照对应位置,对变量赋值. 1) 本质上,这种写法属于“模式匹配 ...
- ES6中的变量的解构赋值, 解放我们的双手,实现变量的批量赋值
ES6--变量的解构赋值 引言 正文 一.数组的解构赋值 解构失败 不完全解构 默认值 二.对象的解构赋值 三.字符串的解构赋值 结束语 引言 变量的解构赋值, 听起来很复杂, 简单点说可以理解成批量 ...
- ES6 学习笔记 - 变量的解构赋值
变量的解构赋值 学习资料:ECMAScript 6 入门 数组的解构赋值 基本用法 可以从数组中提取值,按照对应位置,对变量赋值.这种写法属于"模式匹配". let [a, b, ...
- JavaScript学习笔记 -- ES6学习(三) 变量的解构赋值
1.解构赋值的定义 在ES6中,允许按照一定模式,从数组和对象中提取值(所谓解构),然后对变量进行赋值. var a = 1; var b = 2; var c = 3; //等价于 var [a, ...
- ES6入门之变量的解构赋值(二)
前言 在上一章 ES6入门之let和const命令中我们对ES6的相关语法已经有了初步了解,上一章中我们主要学习了三大部分的内容,let命令的使用,块级作用域,const命令的使用,那么从本篇博客将进 ...
- es6基础入门变量的解构赋值
let [a, b, c] = [1, 2, 3]; let [foo, [[bar], baz]] = [1, [[2], 3]]; foo bar baz let [ , , third] = [ ...
- 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允许的写法 ...
随机推荐
- UI Framework-1: Native Controls
Native Controls Background Despite the fact that views provides facilities for custom layout, render ...
- 紫书 例题 10-28 UVa 1393(简化问题)
这道题是对称的 所以只算"\", 最后答案再乘以2 然后每一条直线看作一个包围盒 枚举包围盒的长宽 有两种情况会重复 (1)包围盒里面有包围盒. 这个时候就是在一条直线上 那么我们 ...
- Spring学习总结(3)——Spring配置文件详解
Spring配置文件是用于指导Spring工厂进行Bean生产.依赖关系注入(装配)及Bean实例分发的"图纸".Java EE程序员必须学会并灵活应用这份"图纸&quo ...
- javaweb——登陆权限过滤器的编写
http://blog.csdn.net/lzc4869/article/details/50935858
- COGS——T1588. [USACO FEB04]距离咨询
http://cogs.pro/cogs/problem/problem.php?pid=1588 ★★ 输入文件:dquery.in 输出文件:dquery.out 简单对比时间限制:1 ...
- Ubuntu下安装git工具
环境:Ubuntu 9.10 git-1.8.2.3.tar.bz2 1.将安装包下载到所选文件夹下,如:/tmp 2.tar -xjf git-1.8.2.3.tar.bz2 3.cd git-1. ...
- HDU 4183Pahom on Water(网络流之最大流)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4183 这题题目意思非常难看懂..我看了好长时间也没看懂..终于是从网上找的翻译. .我就在这翻译一下吧 ...
- 【Android进阶】Junit单元測试环境搭建以及简单有用
单元測试的目的 首先.Junit单元測试要实现的功能,就是用来測试写好的方法是否可以正确的运行,一般多用于对业务方法的測试. 单元測试的环境配置 1.在AndroidManifest清单文件的Appl ...
- Android之Handler源代码深入解析
闲着没事.就来看看源代码,看看源代码的各种原理,会用仅仅是简单的,知道为什么才是最牛逼的. Handler源代码分析那,从使用的步骤来边用边分析: 1.创建一个Handler对象:new Handle ...
- BitSet的使用
有些程序须要处理二进制有序集,标准库提供了bitset 类型,其实,bitset 是一个二进制容器.容器中每个元素都是一位二进制码,或为 0,或为 1. bitset除了能够訪问指定下标的bit位以外 ...