es6-变量的解构赋值

从数组和对象中提取值,对变量进行赋值,这被称为解构

let [foo, [[bar], baz]] = [1, [[2], 3]];
foo // 1
bar // 2
baz // 3

let [ , , third] = ["foo", "bar", "baz"];
third // "baz"

let [x, , y] = [1, 2, 3];
x // 1
y // 3

let [head, ...tail] = [1, 2, 3, 4];
head // 1
tail // [2, 3, 4]

let [x, y, ...z] = ['a'];
x // "a"
y // undefined  // 如果解构不成功,变量的值就等于undefined
z // []
function* fibs() {let a = 0;let b = 1;while (true) {yield a;[a, b] = [b, a + b];}
}let [first, second, third, fourth, fifth, sixth] = fibs();
// 0,1,1,2,3,5
let [x, y, z] = new Set(['a', 'b', 'c']); // set,不重复的数组
x // "a"

允许指定默认值当一个数组成员严格等于undefined,默认值才会生效

let [foo = true] = []; // foo // true
let [x, y = 'b'] = ['a']; // x='a', y='b'
let [x, y = 'b'] = ['a', undefined]; // x='a', y='b'
let [x = 1] = [undefined]; // x // 1
let [x = 1] = [null]; //x // null

 

转载于:https://www.cnblogs.com/avidya/p/10636664.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浏览器的渲染原理

看到这个标题大家一定会想到这篇神文《How Browsers Work》,这篇文章把浏览器的很多细节讲得很细,而且也被翻译成了中文。为什么我还想写一篇呢?因为两个原因, 1)这篇文章太长了,阅读成本太大,不…

AO 直接调用GeoProcessing 工具

Geoprocessing是ArcGIS的一个基础组成部分。无论你是一个新手抑或老资格的专家,geoprocessing都是你使用ArcGIS完成每天工作的一部分。它提供了数据分析、数据管理和数据转换等对于所用GIS用户都必须的工具,当然也包括ArcObjects开发者。GIS程序通常需要…

Linux环境变量PSI指什么,PSI 文件扩展名: 它是什么以及如何打开它?

了解 PSI 问题常见的 PSI 打开问题缺少 PrimalScript双击你的 PSI 文件会提示消息 “%%os%% 无法打开 PSI 文件”。 通常,%%os%% 中会出现这种情况,因为 PrimalScript 未安装在你的电脑上。 由于您的操作系统不知道如何处理此文件,因此无法通…

linux 修改文件时间

1、ls -l *.sh 2、touch -d "10/13/2013" *.sh 【我想把所以的.sh文件修改到三个月前(2013年10月13)的时间。】3、ls -l *.sh 参考文章 http://blog.itpub.net/29283412/viewspace-1070106/ 另外也可以单独修改时间或者月份,如下以…

datetime模块日期转换和列表sorted排序

import datetime dt 2019010103 # 日期 2019年1月1日3时 dts (datetime.datetime.strptime(dt, %Y%m%d%H) datetime.timedelta(days-1)).strftime(%Y%m%d%H) # 将dt向前或向后调整(day表示天,hours表示表示小时,负数往前正数往后&#xf…

差距

现在看明白了自己的距离,该从何处下手? 时间是怎么争取出来的?转载于:https://www.cnblogs.com/rosion/archive/2009/04/11/1433450.html

linux 命令tf,Linux文件管理命令

本篇涉及命令:cat,tac,more,less,head,tail,file,stat,touch,which,whatis,whereis,ls,mkdir,rmdir,tree,cp,mv,rm文本文件查看类命令cat 查看文件内容(concatenate)cat命令用于查看一个或多个文本文件内容,可以将两个或两个以上的文件连接起来并显示&am…

Python实现——二元线性回归(最小二乘法)

2019/3/30二元线性回归——矩阵公式法_又名:对于python科学库的糟心尝试_ 二元线性回归严格意义上其实不过是换汤不换药,我对公式进行推导,其实也就是跟以前一样的求偏导并使之为零,并且最终公式的严格推导我大概也只能说是将将理…

CSharp设计模式读书笔记(18):中介者模式(学习难度:★★★☆☆,使用频率:★★☆☆☆)...

中介者模式(Mediator Pattern):用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互,中介者模式又称为调停…

AT命令解释

一、 AT命令解释&#xff1a;1、常用操作1.1 AT命令解释&#xff1a;检测Module与串口是否连通&#xff0c;能否接收AT命令&#xff1b;命令格式&#xff1a;AT<CR>命令返回&#xff1a;OK (与串口通信正常)&#xff08;无返回&#xff0c;与串口通信未连通&#xff09;测…

linux四种集群是什么,lvs四种集群特点及使用场景

一、 前言当一组服务器在高速的局域网或广域网中相互连接&#xff0c;其前端部署了一个负责负载调度的调度器(Director)的服务器系统。调度器能将网络请求无缝调度到真实服务器上(Real server)&#xff0c;客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一…

c#数据库訪问返回值类型为SqlDataReader时使用using时注意的问题

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主同意不得转载。https://blog.csdn.net/u010512579/article/details/24011761 在封装通用 SQLSERVER 数据可訪问方法时&#xff0c;假设返回值类型为 SqlDataReader ,那么在创建连接字符串的时候。我们不能写成例如以…

BroadcastReceiver应用详解(转)

转自&#xff1a; http://blog.csdn.net/liuhe688/article/details/6955668 問渠那得清如許&#xff1f;為有源頭活水來。南宋.朱熹《觀書有感》 据说程序员是最爱学习的群体&#xff0c;IT男都知道&#xff0c;这个行业日新月异&#xff0c;必须不断地学习新知识&#xff0c;不…

深入浅出JSON

深入浅出JSON JSON定义 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式&#xff0c;易于阅读和编写&#xff0c;同时也易于机器解析和生成。它基于ECMA262语言规范&#xff08;1999-12第三版&#xff09;中JavaScript编程语言的一个子集。 JSON采用与编程语言…

就linux学习的一点感受,学习linux的体会

学linux的驱动设计一&#xff1a;首先先装个虚拟机吧&#xff0c;我觉得这个比较好&#xff0c;有些人建议直接装在硬盘上(我想他们是觉得有点环境压力吧)&#xff0c;可我觉得对于没有linux基础的还是先装虚拟机比较好。二&#xff1a;记住一些常用的命令&#xff0c;这个是学…

自动绑定数据源

自动绑定数据源实现数据控件与原始数据的绑定是实现数据展示与编辑的基本前提。在常规的设计模式下实现数据绑定有两种方式&#xff1a;1&#xff09;第一种方式&#xff1a;在窗体上引用数据对象→逐个拖放控件→分别设置控件与字段的绑定关系。这无疑是个不厌其烦的重复过程&…

Java工具类——通过配置XML验证Map

Java工具类——通过配置XML验证Map 背景 在JavaWeb项目中&#xff0c;接收前端过来的参数时通常是使用我们的实体类进行接收的。但是呢&#xff0c;我们不能去决定已经搭建好的框架是怎么样的&#xff0c;在我接触的框架中有一种就是通过Map来接收前端过来的所有参数&#xff0…

c语言用指针两个字母交换,c语言指针基础之用指针交换两个数(代码实例)

用指针交换两个数&#xff1a;void swap(int *p,int *q) {int temp;temp *p;*p *q;*q temp;}int main(){int a 3, *p,c 5, *q;p &a; //把变量a的地址赋值给指针p&#xff0c;即p指向aq &c;swap(p,q);printf("a %d,c %d\n", a, c);return 0;}注意&am…

如何在 Windows Server 2003、Windows 2000 和 Windows XP 中备份恢复代理的加密文件系统 (EFS) 私钥...

本 文介绍了如何在运行 Microsoft Windows Server 2003、Microsoft Windows 2000 或 Microsoft Windows XP 的计算机上备份恢复代理加密文件系统 (EFS) 私钥。当位于本地计算机上的 EFS 私钥副本丢失时&#xff0c;请使用恢复代理的私钥恢复数据。本文包含有关如何使用证书导出…

你可能从未听过的 Linux 发行版

Hanthana Linux 官方主页&#xff1a;http://www.hanthana.org Hanthana Linux 基于 Fedora&#xff0c;主要面向 IT 教育&#xff0c;默认包含额外的编/解码器及多媒体播放器。它提供可安装到硬盘的 LiveDVD&#xff0c;支持 i686 和 x86_64 架构。 ROSA Linux 官方主页&#…