es6变量的解构赋值学习代码

// 变量解构赋值
let [a1, b1, c1] = [1,2,3];
console.log(a1,b1,c1);
//  变量解构赋值  存在默认值
let [a2=1, b2, c2=2] = [, 3, 4];
console.log(a2,b2,c2);

// f()惰性执行 在用到的时候才会执行 即只有当元素成员严格等于====undefined时候才会执行
function f(){
  console.log('f is run');
  return 3;
}

let [x=f()] = [undefined];
console.log(x); 

// 对象的解构赋值,对象解构赋值需保证属性名相同才可以赋值  解构失败为undefined 也可指定默认值
let {a3, b3} = {b3: '4', a3: '6'};
console.log(a3,b3);

// 对象解构 可以将对象的方法赋值给某个变量
function SetObj(){
  var obj = new Object();
  obj.name = 'lishang',
  obj.age = 23;
  obj.sayHello=function(){
    console.log('hello world');
  }
  return obj;
}

let tempObj = SetObj();
let {name, age, sayHello} = tempObj;
console.log(name, age);
sayHello();


// 因为let {foo} === let {foo: foo} 所以对象的解构是先找到同名的属性 再赋给对应的变量
let {a4: b4} = {a4: 7};
console.log(b4);
//console.log(a4); // error:a4 is not defined


// 数组作为特殊的对象 也可进行解构
let tempArr = [1, 3, 6];
let {0:first, [tempArr.length-1]: last} = tempArr;
console.log(first);
console.log(last);

// 函数参数的解构 数组方式
function testOne([x,y]){
  console.log(x, y);
}
//对象方式
function testTwo({x,y}){
  console.log(x,y);
}
// 参数可设置默认值
function testThree({x=0, y=1}={}){
  console.log(x, y);
}

testOne([3,4]);
testTwo({y:4,x:3});
testThree({x:2,y:3});
testThree({y:3});
testThree({});
testThree();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值