解构赋值:按照一定模式,从数组和对象中提取值,对变量进行赋值。
 
数组解构
对象解构
字符串解构
应用场景
 
 
曾经的赋值噩梦,非解构赋值数组:
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. python3中collections模块(转)

    https://www.cnblogs.com/zhangxinqi/p/7921941.html

  2. netty系列之:NIO和netty详解

    目录 简介 NIO常用用法 NIO和EventLoopGroup NioEventLoopGroup SelectorProvider SelectStrategyFactory RejectedEx ...

  3. OA办公软件篇(一)—组织架构

    OA办公软件篇(一)-组织架构 背景 作用 迭代历程 具体实现 写在最后   背景 在说组织架构之前,我们先来说说OA本身. 百度百科解释OA为:办公自动化(Office Automation,简称O ...

  4. 基于NopCommerce框架开发的微信小程序UrShop

    Urshop小程序商城 介绍 UrShop小程序商城 2.0发布啦,发布地址https://gitee.com/urselect/urshop UrShop 根据NopCommerce框架开发的,基于 ...

  5. tp 七牛云文件上传

    1.先创建好七牛云账号和存储空间 申请七牛云账号: 创建七牛云存储空间: 在账号的秘钥管理里面创建秘钥 获取AccessKey / SecretKey: 2.集成PHP-SDK 七牛云开发文档:htt ...

  6. pip安装使用国内源的两种方法

    pip安装后使用pip安装第三方库默认是国外源,一般安装慢连接不稳定,等得花儿都谢了,结果还告诉你安装失败..../(ㄒoㄒ)/~~ 这时我们就要想想其它办法啦,毕竟不能强求 国外不行,就只有国内了赛 ...

  7. 使用tc配置后端设备,来限制虚拟机网卡带宽

    如果通过tc来限制虚拟机网卡接收方向带宽呢,实际上使用tc对接收方向限制的不够好,使用tc ingress可以限制接收,但是功能不够多,而且会形成丢包问题.一般是采用将流量重定向到一个虚拟设备ifb上 ...

  8. python 实现批量md转word

    # qianxiao996精心制作 #博客地址:https://blog.csdn.net/qq_36374896 #md批量转word import os def auto_md_to_docx(f ...

  9. 2022IDEA配置启动lilishop的swagger展示

    目录 一.概述 二.基本构建 三.Git 导入编译器 四.模块描述浅析 五.配置文档 1.注释配置文件 2.添加配置 3.暂时关闭权限 4.浏览器测试访问 5.其他需要修改模块 六.参考文献 结语 一 ...

  10. linux命令管道工作原理与使用方法

    一.管道定义 管道是一种两个进程间进行单向通信的机制.因为管道传递数据的单向性,管道又称为半双工管道.管道的这一特点决定了器使用的局限性.管道是Linux支持的最初Unix IPC形式之一,具有以下特 ...