首先在 ES6中引入的“解构赋值语法”允许把数组和对象中的值插入到不同的变量中。虽然看上去可能很难,但实际上很容易学习和使用。
数组解构非常简单。你所要做的就是为数组中的每个值声明一个变量。你可以定义更少的变量,而不是数组中的索引(即,如果你只想解处理前几个值),请跳过某些索引或甚至使用 REST 模式将所有剩余的值放到新数组中。
- const nums = [ 3, 6, 9, 12, 15 ];
- const [
- k, // k = 3
- l, // l = 6
- , // Skip a value (12)
- ...n // n = [12, 15]
- ] = nums;
对象解构与数组解构非常相似,主要区别是可以按名称引用对象中的每个key,从而创建一个有相同名称的变量。此外还可以将键解构为新的变量名,只解构所需的 key,然后用 rest 模式将剩余的 key 解构为新对象。
- const obj = { a: 1, b: 2, c: 3, d: 4 };
- const {
- a, // a = 1
- c: d, // d = 3
- ...rest // rest = { b: 2, d: 4 }
- } = obj;
嵌套对象和数组可以通过相同的规则来进行解构。区别在于可以将嵌套 key 或值直接解构为变量,而不必将父对象存储在变量本身中。
- const nested = { a: { b: 1, c: 2 }, d: [1, 2]};
- const {
- a: {
- b: f, // f = 1
- ...g // g = { c: 2 }
- },
- ...h // h = { d: [1, 2]}
- } = nested;
由于数组的行为与对象相似,所以可以通过使用索引作为对象解构分配中的 key,用解构分配语法从数组中获取特定值。用这种方法还可以得到数组的其他属性(例如数组的 length)。最后,如果解构后的值是 undefined,则还可以为解构过程中的变量定义默认值。
- const arr = [ 5, 'b', 4, 'd', 'e', 'f', 2 ];
- const {
- 6: x, // x = 2
- 0: y, // y = 5
- 2: z, // z = 4
- length: count, // count = 7
- name = 'array', // name = 'array' (not present in arr)
- ...restData // restData = { '1': 'b', '3': 'd', '4': 'e', '5': 'f' }
- } = arr;
1.百度是个大骗子,我抄了十几年的满分作文却从未得过满分。 2.学神在刷难题,...
背景 有时候我会碰到快速搭建测试服务的需求,比如像这样: 搭建一个 HTTP Servi...
前言 微服务成了互联网架构的标配模式,对微服务之间的调用的流量治理和管控就尤...
本文转载自微信公众号「后端Q」,作者conan。转载本文请联系后端Q公众号。 概述 ...
基于阿里巴巴的互联网架构、大数据技术,利用混合云架构打造全新的云化电子税 务...
作者 | 楚奕 来源 | 阿里技术公众号 这篇文章主要从技术视角介绍下跨平台WebCanv...
1.在报名的路上,我看见远处的学校,轰!的一声没了。希望如此。 2.男:我一直...
创业与投资的本质,都是追寻一种能够穿越时空,抵达未来的高效方式。 德勤管理咨...
3月24日,腾讯发布2020年Q4及全年财报,其中金融科技及企业服务第四季收入385亿...
1.某女生寝室门口贴着一个告示男生与饭盒不得入内,问何解?答曰两者都会搞大女...