es6学习笔记--解构赋值
昨天学习了es6语法中解构赋值,解构赋值在声明中和函数传参提高了灵活性和便捷性,值得掌握该语法。
let [a,b,c] = [1,2,3];
console.log(a); //
console.log(b); //
console.log(typeof c); // number
console.log(a === 1); // true
let [arr,foo] = [1];
console.log(foo); // undefined
let [x, y] = [1, 2, 3];
console.log(x); //
console.log(y); //
let [x,[a],y] = [1,[2,3],4];
console.log(a) //
let [a,b=2] = [1];
console.log(a) //
console.log(b) //
let [a,b=2] = [1,3];
console.log(`a的值是${a} b的值是${b}` ) // 1 3
let [a,b=2] = [1,undefined];
console.log(`a的值是${a} b的值是${b}` ) // 1 2
let [a,b=2] = [1,null];
console.log(a) //
console.log(null === undefined) // false 严格模式下,null和undefined不等
console.log(b) // null
let x = 1;
let y = 2;
[x, y] = [y, x];
console.log(`x:${x} y:${y}`) // x:2 y:1
let {b, a, c} = {a: 'peter', b: 'Bob'};
console.log(`a:${a} b:${b} c:${c}`) // peter Bob undefined
const obj = {
foo: 'peter',
bar: 25
};
let {foo: name, bar: age} = obj;
console.log(`name:${name} age:${age}`) // name:peter age:25
{obj} = {obj: 10} // Uncaught SyntaxError: Unexpected token =
({obj} = {obj: 10})
在对象解构赋值中,最常用的就是,函数返回值,有多个时,可以按照返回对象的形式返回。
function foo() {
return {
foo: 1,
bar: 2
};
}
let { foo, bar } = foo();
let json = {
id: 1,
status: 200,
data: [123, 456]
};
let { id, status, data: number } = json;
console.log(id, status, number); // 1, 200, [123, 456]
let [a,b,c,d,e,f] = 'hello';
console.log(`a:${a} b:${b} c:${c} d:${d} e:${e} f:${f}`) // a:h b:e c:l d:l e:o f:undefined
console.log(typeof a) // string let [m,n,q,p] = 'w ord';
console.log(`m:${m} n:${n} q:${q} p:${p}`) // m:w n: q:o p:r let {length:len} = 'hello world';
console.log(len) // let [a='H',b,c,d,e,f='W'] = 'hello';
console.log(`a:${a} b:${b} c:${c} d:${d} e:${e} f:${f}`) // a:h b:e c:l d:l e:o f:W
function add([x, y]){
return x + y;
}
console.log(add([1,2])); // 3
function move({x = 0, y = 0} = {}) {
return [x, y];
}
console.log(move({x: 1, y: 2})); // [1, 2]
console.log(move({x: 1})); // [1, 0]
console.log(move({})); // [0, 0]
console.log(move()); // [0, 0]
对应的笔记和实例,我放到了GitHub,https://github.com/sqh17/notes
有什么问题请私信或留下评论,一起加油。
参考资料:
阮一峰大大的es6标准入门:http://es6.ruanyifeng.com/
es6学习笔记--解构赋值的更多相关文章
- ES6学习之 解构赋值
最近看了一个vue的项目,发现作者大量使用了ES6的语法,包括async, Promise, Set, Map还有一些解构赋值, 才发现自己对于ES6的语法缺乏了总结和运用,看得有点艰难,所以重新学习 ...
- ES6学习-4 解构赋值(1)数组的解构赋值
解构赋值是ES6很大的一个提升,为我们带来了很多方便,但用不好,会使程序的可读性变差,所以用时要注意,尽量保持程序的易读性. 数组解构赋值 在JS没有支持解构赋值之前,我们声明几个变量并赋值通常都是像 ...
- es6学习笔记2-解构赋值
解构赋值基本概论就按照一定的模式通过数组或者对象对一组变量进行赋值的过程. 1.通过数组对变量进行赋值: /*通过这种方式赋值要注意左右两边的结构模式要一样,在赋值的时候,根据位置进行赋值对应模式.* ...
- ES6学习-5 解构赋值(2)对象的解构赋值
啥也不说,先举个栗子: 1 let { myname, myage } = { myage: 18, myname: "郭郭" }; 2 console.log(myname) / ...
- ES6-11学习笔记--解构赋值
解构赋值:按照一定模式,从数组和对象中提取值,对变量进行赋值. 数组解构 对象解构 字符串解构 应用场景 曾经的赋值噩梦,非解构赋值数组: let arr = [1, 2, 3]; let ...
- ES6 - 变量的解构赋值学习笔记
变量的解析赋值 数组的解析赋值 es6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这就称为解构. var a = 1; var b = 2; var c = 3; //在es6中允许写成 ...
- es6变量的解构赋值学习笔记
1. 解构赋值的规则是,只要等号右边的值不是对象,就先将其转为对象.由于undefined和null无法转为对象,所以对它们进行解构赋值,都会报错. let { prop: x } = undefin ...
- 【JS】325- 深度理解ES6中的解构赋值
点击上方"前端自习课"关注,学习起来~ 对象和数组时 Javascript 中最常用的两种数据结构,由于 JSON 数据格式的普及,二者已经成为 Javascript 语言中特别重 ...
- ES6基础与解构赋值(高颜值弹框小案例!)
let只作用在当前块级作用域内使用let或者const声明的变量,不能再被重新声明let不存在`变量提升` console.log(dad); var dad = '我是爸爸!';//预定义undef ...
随机推荐
- Lua利用cjson读写json
前言 本文结合本人的实际使用经验和代码示例,介绍如何在Lua中对json进行encode和decode.我这里采用的是Lua CJson库,是一个高性能的JSON解析器和编码器,其性能比纯Lua库要高 ...
- Es6 Symbol.iterator
Symbol.iterator 为每一个对象定义了默认的迭代器.该迭代器可以被 for...of 循环结构使用. --描述 当需要迭代一个对象的时候(比如在 for...of 循环的开始时),它的 @ ...
- 高可用Redis服务架构分析与搭建
基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量 ...
- Python基础——条件判断
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ 到目前为止,Python基础系列的文章中的程序都是一条一条语句顺序执行的.在本章中,我会重点介绍让程序选择是否执行语 ...
- Java经典编程题50道之三十二
取一个整数a从右端开始的4-7位. public class Example32 { public static void main(String[] args) { cut(12 ...
- git ssh 配置
创建并切换到 ~/.ssh(存在就直接切换过去) 运行 ssh-keygen 创建 rsa 文件 复制 .pub 的文件内容,添加到网站的公钥列表 Git\etc\ssh\ssh_config 中添加 ...
- 依赖于boodtrap3的插件推荐以及bootrap发展前景
作为一个栅格系统和速度开发的,偏向于框架,bootstrap出来很火,为了节省效率,不少公司选用这个框架进行开发,一同被发现的是依赖于bootrap各种插件的adminLTE的集成模版,但是前端框架日 ...
- HDU 5060
题意略. 这个题目最关键的是在于计算球冠的体积.令球冠体积为V. 我们可以用祖暅原理来计算V, 这里,可以看出,球冠的体积等于左图的上半个圆柱减去那个倒扣的圆台. 祖暅原理:界于两个平行平面之间的两个 ...
- Java中空串和null串的区别
对于空串来说这是一个对象他被""这个对象给实例化了只是他的长度为0字符的内容为空. 而String变量中还可以存储一个特殊的值,这个是null,这个表示没有和其他的对象与这个变量相 ...
- jdk 1.8 开发环境配置
计算机->右键->属性->高级系统设置->环境变量->系统变量 新建系统变量:JAVA_HOME,变量值为:C:\Program Files (x86)\Java\jdk ...