龙空技术网

JavaScript ES6 解构语法

拉布多不多 1363

前言:

今天同学们对“阮一峰 sourcemap”大致比较关心,朋友们都想要了解一些“阮一峰 sourcemap”的相关内容。那么小编在网络上搜集了一些对于“阮一峰 sourcemap””的相关内容,希望小伙伴们能喜欢,大家快快来了解一下吧!

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构

从前我们要获取一个数组中的某个值赋值给一个变量我们是这样的:

let arr = [1,2,3];

let a = arr[0],b=arr[1],c=arr[2];

现在我们可以这样:

let [a,b,c] = [1,2,3]

上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。

本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。

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

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

对象的解构赋值:

从前我们要将一个对象的某个属性值赋值给一个变量:

let people = {name:'vic', age:'14'};

let name =people.name;

let age = people.age;

现在我们可以这样:

let {name,age } = people

数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

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

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

用途:

1.交换变量的值

let a=1,b=2;

[a,b] = [b,a];

2.函数参数定义

function f({x,y,z}) {.....}

f({z:3,y:2,x:1}) 调用函数时无需关系参数顺序,当然这里其实是传了一个对象,然后函数只是取出了对象中它需要的对应的属性。

3.提取JSON数据(这个比较常用)

let jsonData = { id:1,name:'vic',age:15}

let {id,name,age} = jsonData;

4.设置函数参数默认值

function f({x=1,y=2,z=3}){}

5.遍历Map结构

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

for (let [key] of map) { // ... }

for (let [,value] of map) { // ... }

6.输入模块的指定方法

const { SourceMapConsumer, SourceNode } = require("source-map"); 获取source-map中的SourceMapConsumer,SourceNode 两个对象

更多具体内容可以查看阮一峰的《ECMAScript 6 入门》

标签: #阮一峰 sourcemap