解构赋值:按照一定模式,从数组和对象中提取值,对变量进行赋值。
 
数组解构
对象解构
字符串解构
应用场景
 
 
曾经的赋值噩梦,非解构赋值数组:
let arr = [1, 2, 3];
let a = arr[0];
let b = arr[1];
let c = arr[2];
console.log(a, b, c);

  上面代码赋值十分冗长。

解构赋值数组:
let [d, e, f] = arr;
console.log(d, e, f);

  使用解构赋值之后代码来那个骤减。

复杂的解构:
let [g, h, [i, j]] = [1, 2, [3, 4]];
console.log(g, h, i, j); //输出1 2 3 4
let [g, h, [i]] = [1, 2, [3, 4]];
console.log(i); //输出3
let [g,h,i,j=5] = [1,2,[3,4],6]

综上可看出解构赋值就是对应数据结构对应给变量赋值。

解构赋值是一种惰性赋值,如果没传值,那么变量就是undefined或者默认值,传了值就是对应的值。
 
 
对象解构赋值:
let user = {
name: "张三",
age: 18,
};
let { age, name } = user;
console.log(name, age);

  对象解构是通过对象key去一一对应,所以解构赋值的时候顺序混乱也能对应上。

使用别名进行解构:
let { age: uage, name: uname } = user;
console.log(uage, uname);

  

字符串解构赋值:
let str = "ibccq";
// for(let i =0;i<str.length;i++){
// console.log(str[i]);
// }
// 根据上面的for循环可以类比字符串解构类似于数组解构
let [s1, s2, s3, s4, s5] = str;
console.log(s1, s2, s3, s4, s5);

  

应用场景:
1、简化赋值代码
2、默认值的赋值使用
 
默认赋值使用例如方法传参解构:
function foo([a, b, c]) {
console.log(a, b, c);
}
foo([1, 2, 3]); function foo2({ name, age, school = "清华" }) {
console.log(name, age, school);
}
foo2({
name: "掌声那",
age: 18,
}); function foo3() {
return {
name: "lala",
age: 18,
};
}
let { name: fname, age: fage } = foo3();
console.log(fname, fage);

  

json解构:
let json = '{"a":"hello","b":"world"}';
let { a: ja, b: jb } = JSON.parse(json);
console.log(ja, jb);

  

ES6-11学习笔记--解构赋值的更多相关文章

  1. es6学习笔记--解构赋值

    昨天学习了es6语法中解构赋值,解构赋值在声明中和函数传参提高了灵活性和便捷性,值得掌握该语法. 概念: ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构.   数组的解构 ...

  2. 石川es6课程---6、解构赋值

    石川es6课程---6.解构赋值 一.总结 一句话总结: 结构相同一一对应的方式赋值:let [json, arr, num, str] = [{ a: 1, b: 2 }, [1, 2, 3], 8 ...

  3. ES6学习之 解构赋值

    最近看了一个vue的项目,发现作者大量使用了ES6的语法,包括async, Promise, Set, Map还有一些解构赋值, 才发现自己对于ES6的语法缺乏了总结和运用,看得有点艰难,所以重新学习 ...

  4. ES6学习-4 解构赋值(1)数组的解构赋值

    解构赋值是ES6很大的一个提升,为我们带来了很多方便,但用不好,会使程序的可读性变差,所以用时要注意,尽量保持程序的易读性. 数组解构赋值 在JS没有支持解构赋值之前,我们声明几个变量并赋值通常都是像 ...

  5. es6学习笔记2-解构赋值

    解构赋值基本概论就按照一定的模式通过数组或者对象对一组变量进行赋值的过程. 1.通过数组对变量进行赋值: /*通过这种方式赋值要注意左右两边的结构模式要一样,在赋值的时候,根据位置进行赋值对应模式.* ...

  6. ES6学习-5 解构赋值(2)对象的解构赋值

    啥也不说,先举个栗子: 1 let { myname, myage } = { myage: 18, myname: "郭郭" }; 2 console.log(myname) / ...

  7. ES6基础-变量的解构赋值

    作者 | Jeskson 来源 | 达达前端小酒馆 解构赋值: 数组的解构赋值,对象的解构赋值,字符串的解构赋值,数值与布尔值的解构赋值,函数参数的解构赋值. 开发环境准备: 编辑器,VS Code, ...

  8. es6之变量的解构赋值

    es5中通常我们声明变量都是以下的方式: var a = 10; var b = 20; var c = 30; //或者 var a = 10,b = 20,c = 30; //或者 var arr ...

  9. es6分享——变量的解构赋值

    变量的解构赋值:ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 以前的写法: var a = 1; var b = 2; es6允许的写法 ...

随机推荐

  1. numpy.random模块用法小结

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9751471.html 1.np.random.random()函数参数 np.random.r ...

  2. Python简单入门心得(一)

    很久之前就对Python感兴趣了,但是一直没时间学习,最近两天还有点时间,于是网上看了下视频,Python不愧是强类型的编程语言,对每一行的缩进的都有很严格的要求,比如一个判断,如果条件语句else不 ...

  3. Clickhouse 与 Kafka 的数据同步

    作者: LemonNan 原文地址: https://mp.weixin.qq.com/s/SUUHF9R_FKg-3vq7Q3cwBQ 注: 转载需注明作者及原文地址 介绍 Clickhouse 本 ...

  4. 聊聊磁盘 IO

    常见的磁盘类型 按存储原理的不同,可以把磁盘分为这么几种 HDD 盘:没啥说的,就是平时最常见的机械盘. SSD 盘:用电信号来记录存储数据,而不是磁片.显然进行 I/O 时,这要比机械盘的物理寻址方 ...

  5. python 发送GET请求

    # #博客地址:https://blog.csdn.net/qq_36374896 # 特点:把数据拼接到请求路径的后面传递给服务器 # # 优点:速度快 # # 缺点:承载的数据量小,不安全 imp ...

  6. 数据库篇:mysql日志类型之 redo、undo、binlog

    前言 可以说mysql的多数特性都是围绕日志文件实现,而其中最重要的有以下三种 redo 日志 undo 日志 binlog 日志 关注公众号,一起交流:微信搜一搜: 潜行前行 1 redo日志 in ...

  7. MindSpore尝鲜之Vmap功能

    技术背景 Vmap是一种在python里面经常提到的向量化运算的功能,比如之前大家常用的就是numba和jax中的向量化运算的接口.虽然numpy中也使用到了向量化的运算,比如计算两个numpy数组的 ...

  8. 半吊子菜鸟学Web开发3 --Html css学习1

    1创建一个html文件,用vscode打开 首先输入一个! 然后就可以开始编辑html文件了 2 整体结构 <!DOCTYPE HTML><html>    <head& ...

  9. Android Studio Gradle project sync failed

    使用Android Studio 1.1.0创建新项目后,运行报以下错: Error:Unable to start the daemon process. This problem might be ...

  10. docker之间如何通讯的

    Docker 查看容器 IP 地址   查看Docker的底层信息. docker inspect 会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息 docker inspect ...