六、object.assign、扩展运算、空数组/对象

72 阅读1分钟

object.assign、扩展运算、空数组/对象

1、object.assign和扩展运算法是深拷贝还是浅拷贝,两者区别

object.assign(value1,value2)

  • 作用是将对象或数组合并在value1中。

  • 是浅拷贝。

拓展运算符

  • 将数组或对象中的的属性或值拷贝到新的对象中。

  • 也是浅拷贝

二者的区别在于,Object.assign()改变了value1,会引起setter变化。

2、如何判断空对象和空数组

  • 反序列化

使用JSON.stringfy转化为字符串,去判断是否为{}或【】

  • 利用Object.keys去遍历对象,并将可遍历的属性转化为类数组,比较他的length,等于0就是空。

  • 数组直接判断其length。

let test1 = Object.keys(obj)//['name,'age']
let test2 = JSON.stringify({})//{}