美文网首页
ES6----变量的解构赋值

ES6----变量的解构赋值

作者: 字母31 | 来源:发表于2017-10-15 10:18 被阅读0次

1、基本用法

解构赋值:ES6允许按照一定模式将数组和对象中的值按照一定顺序提取出来,对变量进行赋值。其本质是“匹配模式”,只要等号两侧模式相同,变量就会赋予对应的值。

//ES5
let a = 1;
let b = 2;
let c = 3;

//ES6
let [a, b, c] = [1, 2, 3];
let [foo, [[bar], baz]] = [1, [[2], 3]];
foo // 1
bar // 2
baz // 3


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

如果结构不成功,变量值则会是undefined,解构赋值还有一种不完全解构模式,即等号右边只能匹配到左边的一部分,这种情况依然可以赋值成功。

let [a, [b], d] = [1, [2, 3], 4];
a // 1
b // 2
d // 4

2、对象的解构赋值

解构不仅可以用于数组,还可以用于对象,只不过不同的是数组是按照位置赋值,对象则是根据变量以及属性名称进行赋值,这也就要求我们在对对象进行解构赋值时等号两侧的变量与属性名称要一致才能成功。

let { bar, foo } = { foo: "aaa", bar: "bbb" };
foo // "aaa"
bar // "bbb"

let { baz } = { foo: "aaa", bar: "bbb" };
baz // undefined

如果变量名与属性名不一致,则必须按照下面形式来写

let { foo: baz } = { foo: "aaa", bar: "bbb" };
baz // "aaa"
foo // error: foo is not defined

从上面的例子可以看出来对象的解构赋值是先找到同属性名,然后再赋值,真正赋值的是变量。上面例子中foo为匹配模式,baz才是变量。

3、字符串的解构赋值

字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。

const [a, b, c, d, e] = 'hello';
a // "h"
b // "e"
c // "l"
d // "l"
e // "o"

4、常用方法

变量值的交换

let x = 1;
let y = 2;

[x, y] = [y, x];

JSON数据提取

let jsonData = {
  id: 42,
  status: "OK",
  data: [867, 5309]
};

let { id, status, data: number } = jsonData;

console.log(id, status, number);
// 42, "OK", [867, 5309]

函数参数的定义

// 参数是一组有次序的值
function f([x, y, z]) { ... }
f([1, 2, 3]);

// 参数是一组无次序的值
function f({x, y, z}) { ... }
f({z: 3, y: 2, x: 1});

输入模块的指定方法

const { SourceMapConsumer, SourceNode } = require("source-map");

相关文章

  • ES6----变量的解构赋值

    1、基本用法 解构赋值:ES6允许按照一定模式将数组和对象中的值按照一定顺序提取出来,对变量进行赋值。其本质是“匹...

  • 解构赋值

    解构赋值:ES6 中新增了变量赋值的方式,从数组和对象中提取值,对变量进行赋值。 单独赋值给变量,解构赋值。 解构...

  • ES6笔记(解构赋值)

    ES6笔记(解构赋值) 解构赋值 变量的解构: 解构赋值允许指定默认值。 解构赋值必须保证赋值方 被赋值方类型一...

  • 变量的解构赋值

    数组的解构赋值: 解构,就是从数组和对象中提取值,然后对变量进行赋值 解构赋值: 解构不成功,变量的值就等于und...

  • ES6系列之变量的解构赋值

    本篇目录: 数组的解构赋值变量声明并赋值时的解构变量先声明后赋值时的解构不完全解构默认值交换变量解析一个从函数返回...

  • 解构赋值

    解构赋值 数组的解构赋值 嵌套,默认值,展开符 对象的解构赋值 对象解构赋值的本质与简写 对象解构的模式与变量 对...

  • 『ES6脚丫系列』变量的解构赋值

    『ES6脚丫系列』变量的解构赋值 第一章:变量的解构赋值的概念 【01】Q:什么是变量的解构赋值?有哪些方式? 吃...

  • ES6的解构赋值

    一、前言 什么是“解构赋值”呢?就是从数组或者对象中取值,对变量进行赋值,这就是变量的解构赋值。 二、数组的解构赋...

  • 名词

    1 解构: 从数组或对象中提取值,给变量赋值这被称为解构解构赋值的变量都会重新声明解构赋值的规则是,只要等号右边的...

  • 变量的解构赋值 - 字符串、数值、布尔值、函数参数

    一、字符串的解构赋值 二、数值和布尔值的解构赋值 三、函数参数的解构赋值 变量的解构赋值 - 数组篇[https:...

网友评论

      本文标题:ES6----变量的解构赋值

      本文链接:https://www.haomeiwen.com/subject/dhvquxtx.html