ES6 允许按照一定模式从数组和对象中提取值,对变量进行赋值这被称为解构(Destructuring )。
只要等号两边的模式相同左边的变量就會被赋予对应的值。
如果解构不成功变量的值就等于undefined。
以上两种情况都属于解构不成功foo的值都会等于undefined。
如果等号的右边不是数组那么將会报错
解构赋值不仅适用于 var 命令,也适用于 let 和 const 命令
对于 Set 结构,也可以使用数组的解构赋值
只要某种数据结构具有 Iterator 接口,都可以采鼡数组形式的解构赋值
上面代码中,fibs是一个 Generator 函数原生具有 Iterator 接口。解构赋值会依次从这个接口获取值
解构赋值允许指定默认值。
注意 ES6内部使用严格相等运算符(===),判断一个位置是否有值所以,如果一个数组成员不严格等于undefined默认值是不会生效的。
上面代码中如果一个数组成员是null,默认值就不会生效因为null不严格等于undefined。
如果默认值是一个表达式那么这个表达式是惰性求值的,即只有在用到的时候才会求值。
(邮箱中#请改为@)进行举报并提供相关证据,一经查实本社区将立刻删除涉嫌侵权内容。后台-系统设置-扩展变量-手机廣告位-内容正文底部 |