JavaScript中 ES6变量的结构赋值

来源:前端全栈君丶 发布时间:2018-12-04 13:59:53 阅读量:1198

变量的结构赋值用户很多


1、交换变量的值


let x = 1;

let y = 2;

[x,y] = [y,x]

1

2

3

上面的代码交换变量x和变量y的值,这样的写法不仅简洁,易读,语义非常清晰


2、从函数返回多个值


函数只能返回一个值,如果要返回多个值,只能讲他们放在数组或者对象里返回。了解 解构赋值 ,取值这些值非常方便


//返回一个数组

function example(){

  return [1,2,3];

}

let [a,b,c] = example();

[a,b,c];  //[1,2,3]

//返回一个对象

function example(){

  return {

    foo:1,

    bar:2

  };

}

let {foo,bar} = example();

foo;  //1

bar;  //2

//前端全栈学习交流圈:866109386

//面向1-3经验年前端开发人员

//帮助突破技术瓶颈,提升思维能力

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

3、函数参数的定义


解构赋值可以方便的讲一组参数与变量名对应起来。


//参数是一组有次序的值

function f([x,y,z]){

  console.log(x,y,z);

}

f([1,2,3]); //1,2,3

//参数是一组无次序的值

function func({x,y,z}){

  console.log(x,y,z);

}

func({z:3,y:2,x:1}); //1,2,3

1

2

3

4

5

6

7

8

9

10

4、提取JSON数据


解构赋值对提取JSON对象中的数据尤其有用


let jsonData = {

  id:42,

  status:"OK",

  data:[123,456]       

} ;

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

console.log(id,status,number);  //42 "OK" (2) [123, 456]


1

2

3

4

5

6

7

8

5、函数参数的默认值


、、、


6、遍历Map结构


任何部署了Iterator接口的对象都可以使用for… of循环遍历。Map结构原生支持Iterator接口,配合变量的解构赋值获取名和键值就非常方便。


var map = new Map();

map.set('first','hello');

map.set('second','world');

 

for(let [key,value] of map){

  console.log(key,value);

}

 

//first hello

//second world

1

2

3

4

5

6

7

8

9

10

如果只想获取键名,或者只想获取键值,可以这样写。


//获取键名

for(let [key] of map){

  console.log(key);

}

 

//first

//second

//获取键值

for(let [,value] of map){

  console.log(value);

}

//hello

//world

--------------------- 



标签: PHP 环境搭建
分享:
评论:
你还没有登录,请先