欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ES6笔记之解构赋值

程序员文章站 2022-07-02 12:14:04
...

一、数组解构赋值

let [x, y] = [1, 2];    // x=1; y=2
let [x = 1, y = x] = [];     // x=1; y=1
let [x = 1, y = x] = [2];    // x=2; y=2
let [x = 1, y = x] = [1, 2]; // x=1; y=2
let [x = y, y = 1] = [];     // ReferenceError: y is not defined

二、对象解构赋值

对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

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

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

三、字符串的解构赋值

const [a, ...b] = 'hello';
a // "h"
b // "elle"

四、用途:
1、变量交换
2、提取对象的属性
3、遍历Map解构

const map = new Map();
map.set('first', 'hello');
map.set('second', 'world');

for (let [key, value] of map) {
  console.log(key + " is " + value);
}
// first is hello
// second is world

map是Map的实例对象,此时的解构赋值却用了[]符号而非{},原因在于Set 结构for … of遍历时,返回的是一个值,而 Map 结构for … of遍历时,返回的是一个数组,该数组的两个成员分别为当前 Map 成员的键名和键值。

注:for…of 仅可用于拥有iterator接口的数据结构

相关标签: 解构赋值