ES6解构赋值

解构赋值:拆解数据解构,来给变量赋值

如果左边模式只匹配到右边模式的所有,则这个解构是完全解构
如果左边模式只匹配到右边模式的一部分,则这个解构是不完全解构
如果左侧模式中的个别变量没有匹配到右边模式,则这个解构是不成功解构
//数组解构赋值
let [ a , b ] = [ 5 , 6 ];
	//a=5,b=6;

//字符串解构赋值
let [a, b, c, d, e] = 'hello';
// a = 'h'   b = 'e'  c = 'l'  d = 'l'  e = 'o'

//对象解构赋值
let { c ,  d } = { c:7 , d:8 }
	//c=7 , d=8
{}里写的是对象里存在的属性(c和d是对象存在的属性,所以可以找到,并且能够找到对应的值,如果在解构
赋值的时候写了一个对象不存在的属性,那么因为在对象里无法找到,那么这个不存在属性的值就是
undefined),这种也叫做不成功解构
let { a , b } ={a:"ym"};
	//a=ym
	//b=undefined

嵌套类型的解构赋值

let obj = {p: ['hello', {y: 'world'}] };
let {p: [x, { y }] } = obj;
// x = 'hello'
// y = 'world'
let obj = {p: ['hello', {y: 'world'}] };
let {p: [x, {  }] } = obj;
// x = 'hello'

解构默认值

在解构赋值的过程中当一个变量的值是undefined时,可以人为设置变量的默认值
在设置变量的默认值时,总是惰性求值的
let [a ,b=3]=[1];
	//a=1 , b=3

function auto(){
    console.log('执行');
     return 'heaven'
 }
 let [a,b=auto()] = [1];
 console.log(a,b)
 //a=1
 //b在解构赋值时值是undefined,所以b的值变成了默认值,结果为auto函数的执行结果:heaven

剩余运算符

...变量
     1.这个变量必须写在匹配模式的最后面
     2.这个变量会匹配到剩余的所有数据
     3.这个变量是一个数组对象
let [a, ...b] = [1, 2, 3];
//a = 1
//b = [2, 3]
利用剩余运算符计算参数之和
function sum(...num){
    var sumNum = 0;
    for(let i=0;i<num.length;i++){
        sumNum += parseInt(num[i])
    }
    console.log(sumNum)
 }

sum(1,2,3)      //6
sum(1,2,"3")     //6
sum(1,3,"6和4")   //10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值