es6的一些技巧总结(2)

1、对象

 (1)简洁表示法

let foo = 'bar';
let baz = {foo}//{foo:'bar'}

function f(x,y){
  return {x,y}//{x:x,y:y}
}

let o = {
  method(){}
}

(2)属性名表达式

let key = 'foo'

let o = {
  [key]:123,
  ['a'+'b']:123
}

(3)object.is();

与“===”基本一致,不同的有两点:+0不等于-0,NaN等于NaN

(4)object.assign()的用途以及黑科技

为类添加属性
class P {
  constructor(x,y){
    Object.assign(this,{x,y})
  }
}

为类添加方法
Object.assign(class.prototype,{
  method(){},
  method2(){}
})
深度克隆
function clone(o){
  let oproto = Object.getPrototypeOf()
  return Object.assign(Object.create(oProto),o)
}
合并对象
const merge = (target,...source)=>{
  Object.assign(target,...assign)
}
为属性指定默认值
function default (opts){
 opts = Object.assign({},default,opts)
}

(5)判空传导

读取a.b.c.d的安全写法
(1)const foo = (a&&a.b&&a.b.c&&a.b.c.d)
||'default'
(2)const foo = a.b?.c?.d||'default'

(6)属性的遍历

     es6一共有5种方法可以遍历对象的属性

     for...in //遍历自身和继承的可枚举属性

     Object.keys(obj)//返回只包含自身的可枚举属性的数组

     Object.getOwnPropertyNames(obj)//同上

     Object.getOwnpropertySymbols(obj)//返回自身所有的symbol属性

     Reflect.ownKeys(obj)//所有属性

      


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值