其他分享
首页 > 其他分享> > 变量的解构赋值

变量的解构赋值

作者:互联网

ES6允许按照一定模式,从数组和对象中提取值,从而实现对变量进行赋值。将其称为解构

1.数组的解构赋值

简单来说就是通过一定的声明方式,为变量进行赋值。未能正常解构的变量为undefined。

在进行解构赋值时,可以指定默认值,当右边数组为undefined时取到默认值,但当其为null时取不到默认值。

let [a,b,c]=[1,2,3];
let [ , , third] = ["foo", "bar", "baz"];
let [head,...tail]=[1,2,3,4];


let [foo=true]=[];
let [x,y='b']=['a'];
let [x,y='b']=['a',undefined]
let [x,y='b']=['a',null]

2.对象的解构赋值

对象的解构赋值,与数组类似,

在等号左边,定义的变量若与等号右边,定义的对象的key一致,则左边对应变量的值会被解构为右边相应key对应的value。

如不想让左边的变量对应值为右边对象key对应的value,则可以通过将右边的变量写为k:v的形式,这时,左边定义的k就没有作用了。

若在左边定义的变量,不能在右边找到相应对象的k,则该值为undefined。

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

console.log(fooVal,bar,baz)

对象解构赋值的默认值。

var {x=3}={};

var {x,y=5}={x:1};

var {x:y=3}={x:5}

3.解构赋值的注意点

let x ;
({x}={x:4});

let arr=[1,2,3]
let [a,b,c,d,e]='hello'
let {0:first,1:second,}=arr;
console.log(first,second)
    为一个事先声明的变量进行解构赋值时,要加一个(); 数组是特殊的对象,可以通过对象解构赋值; 同理,字符串可以解构为一个数组。   注:文章主要来源:https://es6.ruanyifeng.com/

标签:变量,对象,解构,let,默认值,赋值
来源: https://www.cnblogs.com/2019zjp/p/16444565.html