es6学习:解构赋值

2018-09-21  本文已影响0人  梁风有意

1.数组的赋值

数组的解构是一一对应的
let [a,b,c] = [1,2,3];
console.log(a);\\1
console.log(b);\\2
console.log(c);\\3

解构可以有默认值

let [d,e=true] = [1];
console.log(d);//1
console.log(e);//true
//但是如果存在默认值,在赋值的时候赋值undefined,赋值还是取默认值
let [f,g='ggg'] = [1,undefined];
console.log(f);//1
console.log(g);//ggg

解构不成功的话,值是undefined

let [h,i] = [1];
console.log(h);//1
console.log(i);//undefined

还存在不完全解构,也就是等号右边的值比左边多

let [j, [k], l] = [1, [2, 3], 4];
console.log(j )// 1
console.log(k )// 2
console.log(l) // 4

2.对象的解构

let {tzy,lss} = {tzy:'boy',lss:'girl'};
console.log(tzy);
console.log(lss);
//与数组不同的是,对象的解构是按照对象的属性名来赋值的,所以变量名要和属性名相同,
//上面写法是es6的语法糖,当键和值相等时,可以简写,实际还是
let {tzy:tzy,lss:lss} = {tzy:'boy',lss:'girl'};
//也可以用另一种
let {key:value} = {key:'value'};
console.log(value);//value

3.字符串解构
字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。

const [a, b, c, d, e] = 'hello';
console.log(a)// "h"
console.log(b)// "e"
console.log(c)// "l"
console.log(d)// "l"
console.log(e) // "o"

类似数组的对象都有一个length属性,因此还可以对这个属性解构赋值。

let {length : len} = 'hello';
len // 5
上一篇下一篇

猜你喜欢

热点阅读