程序员

javascript之初识变量的解构赋值

2017-03-10  本文已影响0人  秘果_li
什么是变量的解构(Destructuring)赋值?

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

只要等号两边的模式相同,左边的变量就会被赋予对应的值

 let [m,n]=[9,4];
 console.log(m,n); // m 9; n 4  
let {p,q}={q:"hello",p:"hi"};
console.log(p,q); //hi    hello

注:
1.如果解构不成功,变量的值就等于undefined

let {p} = {q: 'a'};
p // undefined

2.解构也可以用于嵌套结构的对象

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

3.如果要将一个已经声明的变量用于解构赋值,要在 {} 外加上 () 否则JavaScript引擎会将 {p} 理解成一个代码块

let p;
({p} = {p: 8});

但是在有些情况下是不能使用圆括号的:

1.变量声明语句中,不能带有圆括号
2.函数参数中,模式不能带有圆括号
3.赋值语句中,不能将整个模式,或嵌套模式中的一层,放在圆括号之中

所以可以使用 () 的情况只有一种 —— 赋值语句的非模式部分,可以使用圆括号

用途

<1> 交换两个变量的值

let a=1,b=2;
[a,b]=[b,a];     //a=2  b=1

<2>从函数返回多个值
一般要返回多个值的话,我们只能用数组存值,然后输出,有了解构赋值就可以提取出多个值

function fun() {
  return [1, 2, 3];
  }
  let [a, b, c] = fun();
  console.log(a,b,c);  // 输出1 2 3
上一篇下一篇

猜你喜欢

热点阅读