变量的解构赋值
1.解构赋值
1.1数组–按照遍历
- 右边的值或转为对象以后要具备Iterator接口
- 不具备的有:数字型(1-n),布尔型(true,false),NaN,
undefined,null.{}(本身就不具备)
1.2对象–按照属性名
- 属性名必须一致
- 模式,变量
1.3字符串–先转化为对象
//
const [a,b,c] = 'abc';
a//"a";
b//"b";
c//"c";
1.4数值和布尔值–先转为对象,利用toString属性模式
//
let {toString: s} = 123;
s === Number.propotype.toString;//true
let {toString: s} = true;
s === Number.propotype.toString;//true
2.默认值
2.1解构默认值
只有成员(对象的属性)严格等于undefined下才使用默认值
2.2函数参数默认值
只有传参严格等于undefined下才使用默认值
3.undifined出现场景
- 变量声明却未赋值
- 变量没声明却使用
- 函数没有return
- 函数没有传参
4.Aarry.map(callback)
Array中的每个成员循环传递到callback中,执行callback。
4.圆括号问题
- 已经声明的变量用于解构赋值,注意不能让{}成为行首,在前面加()
- 在解构中的圆括号,只能是赋值语句的非模式部分。