ES6笔记(解构赋值)

2018-07-30  本文已影响9人  浮生随笔

ES6笔记(解构赋值)

解构赋值

变量的解构:

let [x = 1, y = x] = [];     // x=1; y=1
let [x = y, y = 1] = [];     // ReferenceError

对象的 解构赋值:

注意,采用这种写法时,变量的声明和赋值是一体的。对于let和const来说,变量不能重新声明,所以一旦赋值的变量以前声明过,就会报错。

字符串的解构赋值

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

let {length : len} = 'hello';
len // 5

let {toString: s} = 123;
s === Number.prototype.toString // true

let {toString: s} = true;
s === Boolean.prototype.toString // true

let { prop: x } = undefined; // TypeError
let { prop: y } = null; // TypeError

解构赋值时,如果等号右边是数值和布尔值,则会先转为对象。
undefined和null无法转为对象,所以对它们进行解构赋值,都会报错。

上一篇 下一篇

猜你喜欢

热点阅读