02变量的解构赋值

// ES6允许按照一种模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。
// 数组的解构赋值:
/**
* 1.如果结构不成功,变量的值就等于undefined
* 2.如果等号的右边不是数组(或者严格地说,不是可遍历的结构,参见《Iterator》一章),
* 那么将会报错。)
* 3.事实上,只要某种数据结构具有Iterator接口,都可以采用数组形式的结构赋值
* 4.结构赋值允许指定默认值(当一个数组成员严格等于undefined,默认值才会生效)
*/

// 对象的解构赋值:
/**
* 1.变量必须与属性同名,才能取到正确的值,如果解构失败,变量的值等于undefined。
* 2.对象的解构赋值可以取到继承的属性。
* 3.默认值(生效条件,对象的属性值严格等于undefined)
* 4.注意:避免将大括号写在行首,将其解释为代码块
*/
// 字符串的解构赋值:字符串被转换成了一个类似数组的对象
// 数值和布尔值的解构赋值:等号右边是数值和布尔值,会先转为对象
/**
* 解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象,由于undefined和null无法
* 转为对象,所以对他们进行解构赋值都会报错
*/
// 函数参数的解构赋值
// 圆括号问题:不能使用圆括号的情况
/**
* 1.变量声明语句(模式不能使用圆括号)
* 2.函数参数(属于变量声明)
* 3.赋值语句的模式
*/
//可以使用圆括号的情况:赋值语句的非模式部分
posted @ 2020-02-13 17:35  onyli  阅读(94)  评论(0)    收藏  举报