ECMAScript 6 学习笔记(二)

解构赋值

- 按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。
1.常见解构赋值
* let [a, b, c] = [1, 2, 3];  //a=1,b=2,c=3
* let [a, ...b] = [1, 2, 3, 4];   a // 1; b // [2, 3, 4]
* let [a] = [];  //a=undefined
复制代码
2.默认值
* let [x, y = 'b'] = ['a']; //x=a;y=b
* let [x = 1] = [undefined]; // x=undefined
* let [x = 1] = [null]; // x=null
复制代码
注意,ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,只有当一个数组成员严格等于undefined,默认值才会生效。
undefined===undefined //true;     
undefined===null //false
复制代码
3.对象的解构赋值
let { x, y } = { x: "a", y: "b" }; //x="a";y ="b"
let x; ({x} = {x: 1}); //x=1;对于已经声明的变量,进行解构赋值,需要加‘()’,否则会报错
复制代码
let { x: y } = { x: 'a', y: 'b' };// y ="a"
复制代码
上述情况,对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。
4.字符串的解构赋值
let [a, b, c, d, e] = 'hello'; // a="h";b="e";c="l";d ="l";e="o";
复制代码
5.数值和布尔值的解构赋值
如果等号右边是数值和布尔值,进行解构赋值时会先转为对象。如果右边是undefined和null则无法转为对象,因为对它们进行解构赋值,都会报错(TypeError)。
6.函数参数的解构赋值
function add([x, y]){
  return x + y;
}
add([1, 2]); // 3
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值