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({})//{}