ES6-note-01

解构:

对象的解构:

//name age用来匹配,one two 才是用来接收的值
let {name:one, age:two} = {name:'zhangsan', age: 13}
//console.log(name, age); 报错
console.log(one, two);//zhangsan 13

ES6对象简写

// let {name:name, age:age} = {name:'zhangsan', age: 13}
let {name, age} = {name:'LBJ', age:23}
console.log(name, age);// LBJ 23

可以不按照顺序:

let {age, name} = {name:'LBJ', age:23}
console.log(name, age);// LBJ 23

当解构不成功时,返回undefined

let {age, name, email} = {name:'LBJ', age:23}
console.log(name, age, email);// LBJ 23 undefined

可以设置默认值,解构不成功时,值时默认值,成功则使用解构的值。

例如当向一个函数传参时,如果有些参数希望有默认值

//解构不成功,使用默认值
let { email = '163@.com'} = {name:'LBJ', age:23}
console.log(email);//163@.com

//在函数中的简单应用
function fun({name, age, email = '@163.com'}) {
  console.log(name, age, email);//LBJ 36 @163.com
}
fun({name:'LBJ', age:'36'})//没有传递email

//解构成功 使用成功后的值
let { email = '163@.com'} = {name:'LBJ', age:23, email:'@qq.com'}
console.log( email);//@qq.com

一些其他的应用

//解构得到对象的方法
let obj = {
  sayName() {
    console.log('this is fun');
  }
}
let {sayName} = obj;
sayName()//this is fun

//Math 也是一个对象
let {random} = Math;//通过解构 获得Math的静态方法
console.log(typeof random);//function
console.log(random());//0~1 的随机数

//使用push方法 往类数组对象中推入一个值
let {push} = [];//通过解构的方式,从Array的原型上得到push的方法 
//let {push} = new Array;
console.log(push);//[Function: push]
let argument = {"name":'LBJ', "age":'26'}
push.call(argument, 'gender')
console.log(argument);//{ '0': 'gender', name: 'LBJ', age: '26', length: 1 }

数组的解构:

let [foo, bar, baz] = [1, [[2]], [3]]
console.log(foo)// 1
console.log(bar)// [[2]]
console.log(baz);// [3]

let [ [[yar]], [xy]] = [1, [[2]], [3]]
console.log(yar);//2
console.log(xy); //3
拓展运算符

...⽤于取出参数对象的所有可遍历属性,拷⻉到当前对象之中。

用于实现对象的深浅拷贝

let obj = {name:"KOBE", age:23, gender:'male', message:{email:'@.com', tel:1234}};
let newObj = {...obj}
console.log(obj === newObj);//false 
console.log(obj.message === newObj.message);//true 

合并对象:

let obj = {name:"KOBE", age:23, gender:'male', message:{email:'@.com', tel:1234}};
let obj2 = {weight: '100KG', height: '1.98'}
let newObj = {...obj, ...obj2}
console.log(newObj);

展开数组:

let arr = [1,2,...[8,9,10],...[14,...[5,7]]]
console.log(arr);[1, 2, 8, 9, 10, 14, 5, 7]

向函数传递多个参数时:

//一个形参 接收多个实参
function fun(str, ...b) {
  console.log(str);
  console.log(b);//[ 1, 2, 3, 4 ]
}
fun('str',1,2,3,4)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值