ES6-解构赋值

何为解构赋值?

ES6中允许从对象和数组按照一定模式进行提取值,然后对变量进行赋值,这种操作就叫解构赋值。

  1. 数组的解构赋值

示例1.1:

//ES6之前的变量赋值写法
let a = 1;
let b = 2;
let c = 3;

//ES6利用解构赋值写法:
let [a,b,c] = [1,2,3];

上面简单的示例可以看到等号左右两边模式是相等的,也就是说左右两边都必须是数组类型,这样左边的变量a,b,c三个变量就会被赋予相应的值!

示例1.2

//省略赋值
let [,,m] = [1,2,3];
console.log(m)
//输出结果是m=3

//不定参数赋值
let  [y1,y2,y3] = [1,2,3,4,5];
console.log(y1,y2,y3);
//输出结果是y1=1; y2=2; y3=[3,4,5];

从示例1.2可以看出数组结构赋值还包括了省略赋值和不定参数赋值,但是不管形式如何变化,有一点要注意:那就是等号两边必须都是数组形式!如果等号右边不是数组类型,那么运行代码会报错!

示例1.3

let [a = 1] = [ ];
console.log(a);  //输出结果是a=1;
let [x=1,y=2] = []; //输出结果是:x=1,y=2
let [x=1,y=x] = [2]; //输出结果是:x=2,y=2
let [x=1,y=x] = [1,2];//输出结果是:x=1,y=2
let [x=y,y=1] = []; // ReferenceError

从上面的示例1.3可以看到,解构赋值中允许使用默认值。而且默认值还可以引用解构赋值的其他变量,但是一定要注意,引用变量时候变量一定要提前声明。否则会报错,如示例最后一个表达式!

  1. 对象的解构赋值:

同理,解构赋值也可以应用在对象上!

示例2.1

let obj={ name:"张三",age:18 };
let {name,age} = obj;
console.log(name,age);
//输出结果是:name="张三";age=18

let {age,name} = obj;
console.log(name,age);
//输出结果是:name="张三";age=18

从上面的示例2.1可以看到,通过对象obj给变量name和age赋值了。而且等号左边对象里面是没有次序的,但是要注意变量必须和属性名同名才能得到正确的值!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值